home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / BDTINC16.PAK / BDTI.H
C/C++ Source or Header  |  1997-05-06  |  132KB  |  3,001 lines

  1. //--------------------------------------------------------------------------
  2. // Visual Database Tools
  3. // Copyright (c) 1995, 1995 by Borland International, All Rights Reserved
  4. //
  5. //   Definitions of database access COM interfaces.
  6. //--------------------------------------------------------------------------
  7.  
  8. #ifndef BDTI_H
  9. #define BDTI_H
  10.  
  11. DEFINE_GUID(LIBID_BDT50,0x2647E000,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. #ifndef DBI_H
  20.  
  21. typedef unsigned long hDBIObj;
  22.  
  23. typedef hDBIObj hDBISes;
  24.  
  25. typedef hDBIObj hDBIDb;
  26.  
  27. typedef hDBIObj hDBICur;
  28.  
  29. typedef hDBIObj hDBIStmt;
  30.  
  31. typedef LPVOID pFLDDesc;
  32.  
  33. #endif // DBI_H
  34.  
  35. typedef enum {
  36.     dupIgnore,
  37.     dupAccept,
  38.     dupError
  39. } TDuplicates;
  40.  
  41. typedef LPVOID TLocale;
  42.  
  43. typedef enum {
  44.     tiDirtyRead,
  45.     tiReadCommitted,
  46.     tiRepeatableRead
  47. } TTransIsolation;
  48.  
  49. typedef enum {
  50.     ftUnknown,
  51.     ftString,
  52.     ftSmallint,
  53.     ftInteger,
  54.     ftWord,
  55.     ftBoolean,
  56.     ftFloat,
  57.     ftCurrency,
  58.     ftBCD,
  59.     ftDate,
  60.     ftTime,
  61.     ftDateTime,
  62.     ftBytes,
  63.     ftVarBytes,
  64. #ifdef __FLAT__
  65.     ftAutoInc,
  66. #endif // __FLAT__
  67.     ftBlob,
  68.     ftMemo,
  69.     ftGraphic,
  70. #ifdef __FLAT__
  71.     ftFmtMemo,
  72.     ftParadoxOle,
  73.     ftDBaseOle,
  74.     ftTypedBinary
  75. #endif // __FLAT__
  76. } TFieldType;
  77.  
  78. typedef enum {
  79.     dsInactive,
  80.     dsBrowse,
  81.     dsEdit,
  82.     dsInsert,
  83.     dsSetKey,
  84.     dsCalcFields,
  85. #ifdef __FLAT__
  86.     dsUpdateNew,
  87.     dsUpdateOld,
  88.     dsFilter
  89. #endif // __FLAT__
  90. } TDataSetState;
  91.  
  92. typedef enum {
  93.     rmExact = 1,
  94.     rmCenter = 2
  95. } TResyncMode;
  96.  
  97. typedef LPVOID TBookmark;
  98.  
  99. typedef enum {
  100.     ixPrimary = 1,
  101.     ixUnique = 2,
  102.     ixDescending = 4,
  103.     ixCaseInsensitive = 8,
  104.     ixExpression = 16
  105. } TIndexOptions;
  106.  
  107. typedef enum {
  108.     ttDefault,
  109.     ttParadox,
  110.     ttDBase,
  111.     ttASCII
  112. } TTableType;
  113.  
  114. typedef enum {
  115.     upWhereAll,
  116.     upWhereChanged,
  117.     upWhereKeyOnly
  118. } TUpdateMode;
  119.  
  120. typedef enum {
  121.     batAppend,
  122.     batUpdate,
  123.     batAppendUpdate,
  124.     batDelete,
  125.     batCopy
  126. } TBatchMode;
  127.  
  128. typedef enum {
  129.     ltReadLock,
  130.     ltWriteLock
  131. } TLockType;
  132.  
  133. typedef enum {
  134.     ptUnknown,
  135.     ptInput,
  136.     ptOutput,
  137.     ptInputOutput,
  138.     ptResult
  139. } TParamType;
  140.  
  141. typedef enum {
  142.     pbByName,
  143.     pbByNumber
  144. } TParamBindMode;
  145.  
  146. typedef enum {
  147.     soFromBeginning,
  148.     soFromCurrent,
  149.     soFromEnd
  150. } TSeekOrigin;
  151.  
  152. interface ITBDTObject;
  153.  
  154. interface DTBDTObject;
  155.  
  156. interface ITBDTComponent;
  157.  
  158. interface DTBDTComponent;
  159.  
  160. interface ITDataSource;
  161.  
  162. interface DTDataSource;
  163.  
  164. interface ITDataSet;
  165.  
  166. interface DTDataSet;
  167.  
  168. interface ITDBDataSet;
  169.  
  170. interface DTDBDataSet;
  171.  
  172. interface ITTable;
  173.  
  174. interface DTTable;
  175.  
  176. interface ITQuery;
  177.  
  178. interface DTQuery;
  179.  
  180. interface ITStoredProc;
  181.  
  182. interface DTStoredProc;
  183.  
  184. interface ITDatabase;
  185.  
  186. interface DTDatabase;
  187.  
  188. interface ITBatchMove;
  189.  
  190. interface DTBatchMove;
  191.  
  192. interface ITSession;
  193.  
  194. interface DTSession;
  195.  
  196. interface ITField;
  197.  
  198. interface DTField;
  199.  
  200. interface ITFieldDef;
  201.  
  202. interface DTFieldDef;
  203.  
  204. interface ITFieldDefs;
  205.  
  206. interface DTFieldDefs;
  207.  
  208. interface ITIndexDef;
  209.  
  210. interface DTIndexDef;
  211.  
  212. interface ITIndexDefs;
  213.  
  214. interface DTIndexDefs;
  215.  
  216. interface ITParam;
  217.  
  218. interface DTParam;
  219.  
  220. interface ITParams;
  221.  
  222. interface DTParams;
  223.  
  224. interface ITStrings;
  225.  
  226. interface DTStrings;
  227.  
  228. interface ITMemoryStream;
  229.  
  230. interface DTMemoryStream;
  231.  
  232. interface ITAnyString;
  233.  
  234. interface DTAnyString;
  235.  
  236. typedef void (STDAPICALLTYPE* NEDatabaseErrorHandler)( IUnknown* Sender, LPCSTR Message, WORD BDEErrorCode, ULONG NativeErrorCode );
  237.  
  238. typedef void (STDAPICALLTYPE* NEListErrorHandler)( IUnknown* Sender, LPCSTR Message );
  239.  
  240. typedef void (STDAPICALLTYPE* NErrorHandler)( IUnknown* Sender, LPCSTR Message );
  241.  
  242. typedef void (STDAPICALLTYPE* NStringsNotifyEvent)( long Data, ITStrings FAR* Sender );
  243.  
  244. typedef void (STDAPICALLTYPE* NPasswordEvent)( long Data, ITSession FAR* Sender, VARIANT_BOOL FAR* Continue );
  245.  
  246. typedef void (STDAPICALLTYPE* NLoginEvent)( long Data, ITDatabase FAR* Database, ITStrings FAR* LoginParams );
  247.  
  248. typedef void (STDAPICALLTYPE* NDataSetNotifyEvent)( long Data, ITDataSet FAR* DataSet );
  249.  
  250. typedef void (STDAPICALLTYPE* NDataSourceNotifyEvent)( long Data, ITDataSource FAR* Sender );
  251.  
  252. typedef void (STDAPICALLTYPE* NDataChangeEvent)( long Data, ITDataSource FAR* Sender, ITField FAR* Field );
  253.  
  254. typedef void (STDAPICALLTYPE* NFieldNotifyEvent)( long Data, ITField FAR* Sender );
  255.  
  256. typedef void (STDAPICALLTYPE* NFieldGetTextEvent)( long Data, ITField FAR* Sender, ITAnyString FAR* Text, VARIANT_BOOL DisplayText );
  257.  
  258. typedef void (STDAPICALLTYPE* NFieldSetTextEvent)( long Data, ITField FAR* Sender, ITAnyString FAR* Text );
  259.  
  260. DEFINE_GUID(IID_IBDT50,0x2647E001,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  261.  
  262. /* Definition of interface: IBDT50 */
  263. DECLARE_INTERFACE_(IBDT50, IUnknown)
  264. {
  265. #ifndef NO_BASEINTERFACE_FUNCS
  266.  
  267.     /* IUnknown methods */
  268.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  269.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  270.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  271. #endif
  272.  
  273.     /* IBDT50 methods */
  274.     STDMETHOD_(void, EasterEgg)(THIS) PURE;
  275.     STDMETHOD_(void, SetErrorHandlers)(THIS_ NEDatabaseErrorHandler dbcb, NEListErrorHandler listcb, NErrorHandler genericcb) PURE;
  276.     STDMETHOD_(VARIANT_BOOL, get_ShowErrors)(THIS) PURE;
  277.     STDMETHOD_(void, put_ShowErrors)(THIS_ VARIANT_BOOL s) PURE;
  278. };
  279.  
  280. DEFINE_GUID(DIID_DBDT50,0x2647E002,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  281.  
  282. /* Definition of dispatch interface: DBDT50 */
  283. DECLARE_INTERFACE_(DBDT50, IDispatch)
  284. {
  285. #ifndef NO_BASEINTERFACE_FUNCS
  286.  
  287.     /* IUnknown methods */
  288.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  289.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  290.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  291.  
  292.     /* IDispatch methods */
  293.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  294.  
  295.     STDMETHOD(GetTypeInfo)(
  296.       THIS_
  297.       UINT itinfo,
  298.       LCID lcid,
  299.       ITypeInfo FAR* FAR* pptinfo) PURE;
  300.  
  301.     STDMETHOD(GetIDsOfNames)(
  302.       THIS_
  303.       REFIID riid,
  304.       OLECHAR FAR* FAR* rgszNames,
  305.       UINT cNames,
  306.       LCID lcid,
  307.       DISPID FAR* rgdispid) PURE;
  308.  
  309.     STDMETHOD(Invoke)(
  310.       THIS_
  311.       DISPID dispidMember,
  312.       REFIID riid,
  313.       LCID lcid,
  314.       WORD wFlags,
  315.       DISPPARAMS FAR* pdispparams,
  316.       VARIANT FAR* pvarResult,
  317.       EXCEPINFO FAR* pexcepinfo,
  318.       UINT FAR* puArgErr) PURE;
  319. #endif
  320.  
  321. /* Capable of dispatching all the methods of interface IBDT50 */
  322. };
  323.  
  324. DEFINE_GUID(CLSID_BDT50,0x2647E003,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  325.  
  326.  
  327. DEFINE_GUID(IID_ITBDTObject,0x2647E004,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  328.  
  329. /* Definition of interface: ITBDTObject */
  330. DECLARE_INTERFACE_(ITBDTObject, IUnknown)
  331. {
  332. #ifndef NO_BASEINTERFACE_FUNCS
  333.  
  334.     /* IUnknown methods */
  335.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  336.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  337.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  338. #endif
  339.  
  340.     /* ITBDTObject methods */
  341.     STDMETHOD_(void, Detach)(THIS) PURE;
  342.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  343.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  344. };
  345.  
  346. DEFINE_GUID(DIID_DTBDTObject,0x2647E005,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  347.  
  348. /* Definition of dispatch interface: DTBDTObject */
  349. DECLARE_INTERFACE_(DTBDTObject, IDispatch)
  350. {
  351. #ifndef NO_BASEINTERFACE_FUNCS
  352.  
  353.     /* IUnknown methods */
  354.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  355.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  356.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  357.  
  358.     /* IDispatch methods */
  359.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  360.  
  361.     STDMETHOD(GetTypeInfo)(
  362.       THIS_
  363.       UINT itinfo,
  364.       LCID lcid,
  365.       ITypeInfo FAR* FAR* pptinfo) PURE;
  366.  
  367.     STDMETHOD(GetIDsOfNames)(
  368.       THIS_
  369.       REFIID riid,
  370.       OLECHAR FAR* FAR* rgszNames,
  371.       UINT cNames,
  372.       LCID lcid,
  373.       DISPID FAR* rgdispid) PURE;
  374.  
  375.     STDMETHOD(Invoke)(
  376.       THIS_
  377.       DISPID dispidMember,
  378.       REFIID riid,
  379.       LCID lcid,
  380.       WORD wFlags,
  381.       DISPPARAMS FAR* pdispparams,
  382.       VARIANT FAR* pvarResult,
  383.       EXCEPINFO FAR* pexcepinfo,
  384.       UINT FAR* puArgErr) PURE;
  385. #endif
  386.  
  387. /* Capable of dispatching all the methods of interface ITBDTObject */
  388. };
  389.  
  390. DEFINE_GUID(IID_ITBDTComponent,0x2647E006,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  391.  
  392. /* Definition of interface: ITBDTComponent */
  393. DECLARE_INTERFACE_(ITBDTComponent, ITBDTObject)
  394. {
  395. #ifndef NO_BASEINTERFACE_FUNCS
  396.  
  397.     /* IUnknown methods */
  398.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  399.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  400.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  401.  
  402.     /* ITBDTObject methods */
  403.     STDMETHOD_(void, Detach)(THIS) PURE;
  404.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  405.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  406. #endif
  407.  
  408.     /* ITBDTComponent methods */
  409.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  410.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  411.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  412.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  413. };
  414.  
  415. DEFINE_GUID(DIID_DTBDTComponent,0x2647E007,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  416.  
  417. /* Definition of dispatch interface: DTBDTComponent */
  418. DECLARE_INTERFACE_(DTBDTComponent, IDispatch)
  419. {
  420. #ifndef NO_BASEINTERFACE_FUNCS
  421.  
  422.     /* IUnknown methods */
  423.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  424.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  425.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  426.  
  427.     /* IDispatch methods */
  428.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  429.  
  430.     STDMETHOD(GetTypeInfo)(
  431.       THIS_
  432.       UINT itinfo,
  433.       LCID lcid,
  434.       ITypeInfo FAR* FAR* pptinfo) PURE;
  435.  
  436.     STDMETHOD(GetIDsOfNames)(
  437.       THIS_
  438.       REFIID riid,
  439.       OLECHAR FAR* FAR* rgszNames,
  440.       UINT cNames,
  441.       LCID lcid,
  442.       DISPID FAR* rgdispid) PURE;
  443.  
  444.     STDMETHOD(Invoke)(
  445.       THIS_
  446.       DISPID dispidMember,
  447.       REFIID riid,
  448.       LCID lcid,
  449.       WORD wFlags,
  450.       DISPPARAMS FAR* pdispparams,
  451.       VARIANT FAR* pvarResult,
  452.       EXCEPINFO FAR* pexcepinfo,
  453.       UINT FAR* puArgErr) PURE;
  454. #endif
  455.  
  456. /* Capable of dispatching all the methods of interface ITBDTComponent */
  457. };
  458.  
  459. DEFINE_GUID(IID_ITDataSource,0x2647E011,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  460.  
  461. /* Definition of interface: ITDataSource */
  462. DECLARE_INTERFACE_(ITDataSource, ITBDTComponent)
  463. {
  464. #ifndef NO_BASEINTERFACE_FUNCS
  465.  
  466.     /* IUnknown methods */
  467.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  468.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  469.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  470.  
  471.     /* ITBDTObject methods */
  472.     STDMETHOD_(void, Detach)(THIS) PURE;
  473.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  474.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  475.  
  476.     /* ITBDTComponent methods */
  477.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  478.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  479.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  480.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  481. #endif
  482.  
  483.     /* ITDataSource methods */
  484.     STDMETHOD_(void, Edit)(THIS) PURE;
  485.     STDMETHOD_(VARIANT_BOOL, IsLinkedTo)(THIS_ ITDataSet FAR* dataset) PURE;
  486.     STDMETHOD_(VARIANT_BOOL, IsLinkedToDispatch)(THIS_ DTDataSet FAR* dataset) PURE;
  487.     STDMETHOD_(TDataSetState, get_State)(THIS) PURE;
  488.     STDMETHOD_(VARIANT_BOOL, get_AutoEdit)(THIS) PURE;
  489.     STDMETHOD_(void, put_AutoEdit)(THIS_ VARIANT_BOOL a) PURE;
  490.     STDMETHOD_(ITDataSet FAR*, get_DataSet)(THIS) PURE;
  491.     STDMETHOD_(DTDataSet FAR*, get_DataSetDispatch)(THIS) PURE;
  492.     STDMETHOD_(void, put_DataSet)(THIS_ ITDataSet FAR* dataset) PURE;
  493.     STDMETHOD_(void, put_DataSetDispatch)(THIS_ DTDataSet FAR* dataset) PURE;
  494.     STDMETHOD_(VARIANT_BOOL, get_Enabled)(THIS) PURE;
  495.     STDMETHOD_(void, put_Enabled)(THIS_ VARIANT_BOOL en) PURE;
  496.     STDMETHOD_(void, AttachOnStateChange)(THIS_ NDataSourceNotifyEvent Callback, long Data) PURE;
  497.     STDMETHOD_(void, DetachOnStateChange)(THIS_ NDataSourceNotifyEvent Callback, long Data) PURE;
  498.     STDMETHOD_(void, AttachOnDataChange)(THIS_ NDataChangeEvent Callback, long Data) PURE;
  499.     STDMETHOD_(void, DetachOnDataChange)(THIS_ NDataChangeEvent Callback, long Data) PURE;
  500.     STDMETHOD_(void, AttachOnUpdateData)(THIS_ NDataSourceNotifyEvent Callback, long Data) PURE;
  501.     STDMETHOD_(void, DetachOnUpdateData)(THIS_ NDataSourceNotifyEvent Callback, long Data) PURE;
  502. };
  503.  
  504. DEFINE_GUID(DIID_DTDataSource,0x2647E012,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  505.  
  506. /* Definition of dispatch interface: DTDataSource */
  507. DECLARE_INTERFACE_(DTDataSource, IDispatch)
  508. {
  509. #ifndef NO_BASEINTERFACE_FUNCS
  510.  
  511.     /* IUnknown methods */
  512.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  513.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  514.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  515.  
  516.     /* IDispatch methods */
  517.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  518.  
  519.     STDMETHOD(GetTypeInfo)(
  520.       THIS_
  521.       UINT itinfo,
  522.       LCID lcid,
  523.       ITypeInfo FAR* FAR* pptinfo) PURE;
  524.  
  525.     STDMETHOD(GetIDsOfNames)(
  526.       THIS_
  527.       REFIID riid,
  528.       OLECHAR FAR* FAR* rgszNames,
  529.       UINT cNames,
  530.       LCID lcid,
  531.       DISPID FAR* rgdispid) PURE;
  532.  
  533.     STDMETHOD(Invoke)(
  534.       THIS_
  535.       DISPID dispidMember,
  536.       REFIID riid,
  537.       LCID lcid,
  538.       WORD wFlags,
  539.       DISPPARAMS FAR* pdispparams,
  540.       VARIANT FAR* pvarResult,
  541.       EXCEPINFO FAR* pexcepinfo,
  542.       UINT FAR* puArgErr) PURE;
  543. #endif
  544.  
  545. /* Capable of dispatching all the methods of interface ITDataSource */
  546. };
  547.  
  548. DEFINE_GUID(CLSID_TDataSource,0x2647E013,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  549.  
  550.  
  551. DEFINE_GUID(IID_ITDataSet,0x2647E021,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  552.  
  553. /* Definition of interface: ITDataSet */
  554. DECLARE_INTERFACE_(ITDataSet, ITBDTComponent)
  555. {
  556. #ifndef NO_BASEINTERFACE_FUNCS
  557.  
  558.     /* IUnknown methods */
  559.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  560.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  561.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  562.  
  563.     /* ITBDTObject methods */
  564.     STDMETHOD_(void, Detach)(THIS) PURE;
  565.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  566.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  567.  
  568.     /* ITBDTComponent methods */
  569.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  570.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  571.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  572.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  573. #endif
  574.  
  575.     /* ITDataSet methods */
  576.     STDMETHOD_(LPSTR, ActiveBuffer)(THIS) PURE;
  577.     STDMETHOD_(void, Append)(THIS) PURE;
  578.     STDMETHOD_(void, AppendRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  579.     STDMETHOD_(void, AppendRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  580.     STDMETHOD_(void, Cancel)(THIS) PURE;
  581.     STDMETHOD_(void, CheckBrowseMode)(THIS) PURE;
  582.     STDMETHOD_(void, ClearFields)(THIS) PURE;
  583.     STDMETHOD_(void, Close)(THIS) PURE;
  584.     STDMETHOD_(void, CursorPosChanged)(THIS) PURE;
  585.     STDMETHOD_(void, Delete)(THIS) PURE;
  586.     STDMETHOD_(void, DisableControls)(THIS) PURE;
  587.     STDMETHOD_(void, Edit)(THIS) PURE;
  588.     STDMETHOD_(void, EnableControls)(THIS) PURE;
  589.     STDMETHOD_(ITField FAR*, FieldByName)(THIS_ ITAnyString FAR* n) PURE;
  590.     STDMETHOD_(DTField FAR*, FieldByNameDispatch)(THIS_ BSTR n) PURE;
  591.     STDMETHOD_(ITField FAR*, FindField)(THIS_ ITAnyString FAR* n) PURE;
  592.     STDMETHOD_(DTField FAR*, FindFieldDispatch)(THIS_ BSTR n) PURE;
  593.     STDMETHOD_(void, First)(THIS) PURE;
  594.     STDMETHOD_(void, FreeBookmark)(THIS_ TBookmark bm) PURE;
  595.     STDMETHOD_(TBookmark, GetBookmark)(THIS) PURE;
  596.     STDMETHOD_(VARIANT_BOOL, GetCurrentRecord)(THIS_ LPSTR buffer) PURE;
  597.     STDMETHOD_(void, GetFieldNames)(THIS_ ITStrings FAR* strings) PURE;
  598.     STDMETHOD_(void, GetFieldNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  599.     STDMETHOD_(void, GotoBookmark)(THIS_ TBookmark bm) PURE;
  600.     STDMETHOD_(void, Insert)(THIS) PURE;
  601.     STDMETHOD_(void, InsertRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  602.     STDMETHOD_(void, InsertRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  603.     STDMETHOD_(VARIANT_BOOL, IsLinkedTo)(THIS_ ITDataSource FAR* datasource) PURE;
  604.     STDMETHOD_(VARIANT_BOOL, IsLinkedToDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  605.     STDMETHOD_(void, Last)(THIS) PURE;
  606.     STDMETHOD_(void, MoveBy)(THIS_ int o) PURE;
  607.     STDMETHOD_(void, Next)(THIS) PURE;
  608.     STDMETHOD_(void, Open)(THIS) PURE;
  609.     STDMETHOD_(void, Post)(THIS) PURE;
  610.     STDMETHOD_(void, Prior)(THIS) PURE;
  611.     STDMETHOD_(void, Refresh)(THIS) PURE;
  612.     STDMETHOD_(void, Resync)(THIS_ TResyncMode mode) PURE;
  613.     STDMETHOD_(void, SetFields)(THIS_ int count, VARIANT FAR* values) PURE;
  614.     STDMETHOD_(void, SetFieldsSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  615.     STDMETHOD_(void, UpdateCursorPos)(THIS) PURE;
  616.     STDMETHOD_(void, UpdateRecord)(THIS) PURE;
  617.     STDMETHOD_(VARIANT_BOOL, get_AtBOF)(THIS) PURE;
  618.     STDMETHOD_(VARIANT_BOOL, get_CanModify)(THIS) PURE;
  619.     STDMETHOD_(ITDataSource FAR*, get_DataSource)(THIS) PURE;
  620.     STDMETHOD_(DTDataSource FAR*, get_DataSourceDispatch)(THIS) PURE;
  621.     STDMETHOD_(VARIANT_BOOL, get_DefaultFields)(THIS) PURE;
  622.     STDMETHOD_(VARIANT_BOOL, get_AtEOF)(THIS) PURE;
  623.     STDMETHOD_(int, get_FieldCount)(THIS) PURE;
  624.     STDMETHOD_(ITFieldDefs FAR*, get_FieldDefs)(THIS) PURE;
  625.     STDMETHOD_(DTFieldDefs FAR*, get_FieldDefsDispatch)(THIS) PURE;
  626.     STDMETHOD_(ITField FAR*, get_Fields)(THIS_ int i) PURE;
  627.     STDMETHOD_(DTField FAR*, get_FieldsDispatch)(THIS_ int i) PURE;
  628.     STDMETHOD_(hDBICur, get_Handle)(THIS) PURE;
  629.     STDMETHOD_(VARIANT_BOOL, get_Modified)(THIS) PURE;
  630.     STDMETHOD_(long, get_RecordCount)(THIS) PURE;
  631.     STDMETHOD_(WORD, get_RecordSize)(THIS) PURE;
  632.     STDMETHOD_(TDataSetState, get_State)(THIS) PURE;
  633.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  634.     STDMETHOD_(VARIANT_BOOL, get_Active)(THIS) PURE;
  635.     STDMETHOD_(void, put_Active)(THIS_ VARIANT_BOOL a) PURE;
  636.     STDMETHOD_(VARIANT_BOOL, get_AutoCalcFields)(THIS) PURE;
  637.     STDMETHOD_(void, put_AutoCalcFields)(THIS_ VARIANT_BOOL a) PURE;
  638.     STDMETHOD_(void, AttachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  639.     STDMETHOD_(void, DetachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  640.     STDMETHOD_(void, AttachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  641.     STDMETHOD_(void, DetachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  642.     STDMETHOD_(void, AttachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  643.     STDMETHOD_(void, DetachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  644.     STDMETHOD_(void, AttachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  645.     STDMETHOD_(void, DetachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  646.     STDMETHOD_(void, AttachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  647.     STDMETHOD_(void, DetachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  648.     STDMETHOD_(void, AttachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  649.     STDMETHOD_(void, DetachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  650.     STDMETHOD_(void, AttachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  651.     STDMETHOD_(void, DetachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  652.     STDMETHOD_(void, AttachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  653.     STDMETHOD_(void, DetachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  654.     STDMETHOD_(void, AttachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  655.     STDMETHOD_(void, DetachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  656.     STDMETHOD_(void, AttachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  657.     STDMETHOD_(void, DetachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  658.     STDMETHOD_(void, AttachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  659.     STDMETHOD_(void, DetachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  660.     STDMETHOD_(void, AttachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  661.     STDMETHOD_(void, DetachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  662.     STDMETHOD_(void, AttachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  663.     STDMETHOD_(void, DetachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  664.     STDMETHOD_(void, AttachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  665.     STDMETHOD_(void, DetachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  666.     STDMETHOD_(void, AttachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  667.     STDMETHOD_(void, DetachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  668.     STDMETHOD_(void, AttachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  669.     STDMETHOD_(void, DetachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  670.     STDMETHOD_(void, AttachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  671.     STDMETHOD_(void, DetachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  672.     STDMETHOD_(void, AttachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  673.     STDMETHOD_(void, DetachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  674.     STDMETHOD_(void, AttachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  675.     STDMETHOD_(void, DetachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  676.     STDMETHOD_(void, AttachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  677.     STDMETHOD_(void, DetachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  678.     STDMETHOD_(void, AttachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  679.     STDMETHOD_(void, DetachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  680.     STDMETHOD_(void, AttachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  681.     STDMETHOD_(void, DetachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  682.     STDMETHOD_(void, AttachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  683.     STDMETHOD_(void, DetachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  684.     STDMETHOD_(void, AttachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  685.     STDMETHOD_(void, DetachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  686.     STDMETHOD_(void, AttachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  687.     STDMETHOD_(void, DetachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  688.     STDMETHOD_(void, AttachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  689.     STDMETHOD_(void, DetachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  690.     STDMETHOD_(void, AttachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  691.     STDMETHOD_(void, DetachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  692.     STDMETHOD_(void, AttachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  693.     STDMETHOD_(void, DetachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  694. };
  695.  
  696. DEFINE_GUID(DIID_DTDataSet,0x2647E022,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  697.  
  698. /* Definition of dispatch interface: DTDataSet */
  699. DECLARE_INTERFACE_(DTDataSet, IDispatch)
  700. {
  701. #ifndef NO_BASEINTERFACE_FUNCS
  702.  
  703.     /* IUnknown methods */
  704.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  705.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  706.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  707.  
  708.     /* IDispatch methods */
  709.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  710.  
  711.     STDMETHOD(GetTypeInfo)(
  712.       THIS_
  713.       UINT itinfo,
  714.       LCID lcid,
  715.       ITypeInfo FAR* FAR* pptinfo) PURE;
  716.  
  717.     STDMETHOD(GetIDsOfNames)(
  718.       THIS_
  719.       REFIID riid,
  720.       OLECHAR FAR* FAR* rgszNames,
  721.       UINT cNames,
  722.       LCID lcid,
  723.       DISPID FAR* rgdispid) PURE;
  724.  
  725.     STDMETHOD(Invoke)(
  726.       THIS_
  727.       DISPID dispidMember,
  728.       REFIID riid,
  729.       LCID lcid,
  730.       WORD wFlags,
  731.       DISPPARAMS FAR* pdispparams,
  732.       VARIANT FAR* pvarResult,
  733.       EXCEPINFO FAR* pexcepinfo,
  734.       UINT FAR* puArgErr) PURE;
  735. #endif
  736.  
  737. /* Capable of dispatching all the methods of interface ITDataSet */
  738. };
  739.  
  740. DEFINE_GUID(IID_ITDBDataSet,0x2647E031,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  741.  
  742. /* Definition of interface: ITDBDataSet */
  743. DECLARE_INTERFACE_(ITDBDataSet, ITDataSet)
  744. {
  745. #ifndef NO_BASEINTERFACE_FUNCS
  746.  
  747.     /* IUnknown methods */
  748.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  749.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  750.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  751.  
  752.     /* ITBDTObject methods */
  753.     STDMETHOD_(void, Detach)(THIS) PURE;
  754.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  755.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  756.  
  757.     /* ITBDTComponent methods */
  758.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  759.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  760.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  761.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  762.  
  763.     /* ITDataSet methods */
  764.     STDMETHOD_(LPSTR, ActiveBuffer)(THIS) PURE;
  765.     STDMETHOD_(void, Append)(THIS) PURE;
  766.     STDMETHOD_(void, AppendRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  767.     STDMETHOD_(void, AppendRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  768.     STDMETHOD_(void, Cancel)(THIS) PURE;
  769.     STDMETHOD_(void, CheckBrowseMode)(THIS) PURE;
  770.     STDMETHOD_(void, ClearFields)(THIS) PURE;
  771.     STDMETHOD_(void, Close)(THIS) PURE;
  772.     STDMETHOD_(void, CursorPosChanged)(THIS) PURE;
  773.     STDMETHOD_(void, Delete)(THIS) PURE;
  774.     STDMETHOD_(void, DisableControls)(THIS) PURE;
  775.     STDMETHOD_(void, Edit)(THIS) PURE;
  776.     STDMETHOD_(void, EnableControls)(THIS) PURE;
  777.     STDMETHOD_(ITField FAR*, FieldByName)(THIS_ ITAnyString FAR* n) PURE;
  778.     STDMETHOD_(DTField FAR*, FieldByNameDispatch)(THIS_ BSTR n) PURE;
  779.     STDMETHOD_(ITField FAR*, FindField)(THIS_ ITAnyString FAR* n) PURE;
  780.     STDMETHOD_(DTField FAR*, FindFieldDispatch)(THIS_ BSTR n) PURE;
  781.     STDMETHOD_(void, First)(THIS) PURE;
  782.     STDMETHOD_(void, FreeBookmark)(THIS_ TBookmark bm) PURE;
  783.     STDMETHOD_(TBookmark, GetBookmark)(THIS) PURE;
  784.     STDMETHOD_(VARIANT_BOOL, GetCurrentRecord)(THIS_ LPSTR buffer) PURE;
  785.     STDMETHOD_(void, GetFieldNames)(THIS_ ITStrings FAR* strings) PURE;
  786.     STDMETHOD_(void, GetFieldNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  787.     STDMETHOD_(void, GotoBookmark)(THIS_ TBookmark bm) PURE;
  788.     STDMETHOD_(void, Insert)(THIS) PURE;
  789.     STDMETHOD_(void, InsertRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  790.     STDMETHOD_(void, InsertRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  791.     STDMETHOD_(VARIANT_BOOL, IsLinkedTo)(THIS_ ITDataSource FAR* datasource) PURE;
  792.     STDMETHOD_(VARIANT_BOOL, IsLinkedToDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  793.     STDMETHOD_(void, Last)(THIS) PURE;
  794.     STDMETHOD_(void, MoveBy)(THIS_ int o) PURE;
  795.     STDMETHOD_(void, Next)(THIS) PURE;
  796.     STDMETHOD_(void, Open)(THIS) PURE;
  797.     STDMETHOD_(void, Post)(THIS) PURE;
  798.     STDMETHOD_(void, Prior)(THIS) PURE;
  799.     STDMETHOD_(void, Refresh)(THIS) PURE;
  800.     STDMETHOD_(void, Resync)(THIS_ TResyncMode mode) PURE;
  801.     STDMETHOD_(void, SetFields)(THIS_ int count, VARIANT FAR* values) PURE;
  802.     STDMETHOD_(void, SetFieldsSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  803.     STDMETHOD_(void, UpdateCursorPos)(THIS) PURE;
  804.     STDMETHOD_(void, UpdateRecord)(THIS) PURE;
  805.     STDMETHOD_(VARIANT_BOOL, get_AtBOF)(THIS) PURE;
  806.     STDMETHOD_(VARIANT_BOOL, get_CanModify)(THIS) PURE;
  807.     STDMETHOD_(ITDataSource FAR*, get_DataSource)(THIS) PURE;
  808.     STDMETHOD_(DTDataSource FAR*, get_DataSourceDispatch)(THIS) PURE;
  809.     STDMETHOD_(VARIANT_BOOL, get_DefaultFields)(THIS) PURE;
  810.     STDMETHOD_(VARIANT_BOOL, get_AtEOF)(THIS) PURE;
  811.     STDMETHOD_(int, get_FieldCount)(THIS) PURE;
  812.     STDMETHOD_(ITFieldDefs FAR*, get_FieldDefs)(THIS) PURE;
  813.     STDMETHOD_(DTFieldDefs FAR*, get_FieldDefsDispatch)(THIS) PURE;
  814.     STDMETHOD_(ITField FAR*, get_Fields)(THIS_ int i) PURE;
  815.     STDMETHOD_(DTField FAR*, get_FieldsDispatch)(THIS_ int i) PURE;
  816.     STDMETHOD_(hDBICur, get_Handle)(THIS) PURE;
  817.     STDMETHOD_(VARIANT_BOOL, get_Modified)(THIS) PURE;
  818.     STDMETHOD_(long, get_RecordCount)(THIS) PURE;
  819.     STDMETHOD_(WORD, get_RecordSize)(THIS) PURE;
  820.     STDMETHOD_(TDataSetState, get_State)(THIS) PURE;
  821.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  822.     STDMETHOD_(VARIANT_BOOL, get_Active)(THIS) PURE;
  823.     STDMETHOD_(void, put_Active)(THIS_ VARIANT_BOOL a) PURE;
  824.     STDMETHOD_(VARIANT_BOOL, get_AutoCalcFields)(THIS) PURE;
  825.     STDMETHOD_(void, put_AutoCalcFields)(THIS_ VARIANT_BOOL a) PURE;
  826.     STDMETHOD_(void, AttachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  827.     STDMETHOD_(void, DetachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  828.     STDMETHOD_(void, AttachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  829.     STDMETHOD_(void, DetachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  830.     STDMETHOD_(void, AttachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  831.     STDMETHOD_(void, DetachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  832.     STDMETHOD_(void, AttachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  833.     STDMETHOD_(void, DetachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  834.     STDMETHOD_(void, AttachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  835.     STDMETHOD_(void, DetachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  836.     STDMETHOD_(void, AttachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  837.     STDMETHOD_(void, DetachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  838.     STDMETHOD_(void, AttachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  839.     STDMETHOD_(void, DetachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  840.     STDMETHOD_(void, AttachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  841.     STDMETHOD_(void, DetachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  842.     STDMETHOD_(void, AttachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  843.     STDMETHOD_(void, DetachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  844.     STDMETHOD_(void, AttachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  845.     STDMETHOD_(void, DetachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  846.     STDMETHOD_(void, AttachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  847.     STDMETHOD_(void, DetachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  848.     STDMETHOD_(void, AttachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  849.     STDMETHOD_(void, DetachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  850.     STDMETHOD_(void, AttachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  851.     STDMETHOD_(void, DetachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  852.     STDMETHOD_(void, AttachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  853.     STDMETHOD_(void, DetachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  854.     STDMETHOD_(void, AttachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  855.     STDMETHOD_(void, DetachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  856.     STDMETHOD_(void, AttachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  857.     STDMETHOD_(void, DetachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  858.     STDMETHOD_(void, AttachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  859.     STDMETHOD_(void, DetachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  860.     STDMETHOD_(void, AttachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  861.     STDMETHOD_(void, DetachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  862.     STDMETHOD_(void, AttachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  863.     STDMETHOD_(void, DetachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  864.     STDMETHOD_(void, AttachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  865.     STDMETHOD_(void, DetachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  866.     STDMETHOD_(void, AttachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  867.     STDMETHOD_(void, DetachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  868.     STDMETHOD_(void, AttachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  869.     STDMETHOD_(void, DetachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  870.     STDMETHOD_(void, AttachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  871.     STDMETHOD_(void, DetachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  872.     STDMETHOD_(void, AttachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  873.     STDMETHOD_(void, DetachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  874.     STDMETHOD_(void, AttachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  875.     STDMETHOD_(void, DetachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  876.     STDMETHOD_(void, AttachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  877.     STDMETHOD_(void, DetachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  878.     STDMETHOD_(void, AttachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  879.     STDMETHOD_(void, DetachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  880.     STDMETHOD_(void, AttachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  881.     STDMETHOD_(void, DetachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  882. #endif
  883.  
  884.     /* ITDBDataSet methods */
  885.     STDMETHOD_(ITDatabase FAR*, get_Database)(THIS) PURE;
  886.     STDMETHOD_(DTDatabase FAR*, get_DatabaseDispatch)(THIS) PURE;
  887.     STDMETHOD_(hDBIDb, get_DBHandle)(THIS) PURE;
  888.     STDMETHOD_(TLocale, get_DBLocale)(THIS) PURE;
  889.     STDMETHOD_(ITAnyString FAR*, get_DatabaseName)(THIS) PURE;
  890.     STDMETHOD_(BSTR, get_DatabaseNameDispatch)(THIS) PURE;
  891.     STDMETHOD_(void, put_DatabaseName)(THIS_ ITAnyString FAR* n) PURE;
  892.     STDMETHOD_(void, put_DatabaseNameDispatch)(THIS_ BSTR n) PURE;
  893. };
  894.  
  895. DEFINE_GUID(DIID_DTDBDataSet,0x2647E032,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  896.  
  897. /* Definition of dispatch interface: DTDBDataSet */
  898. DECLARE_INTERFACE_(DTDBDataSet, IDispatch)
  899. {
  900. #ifndef NO_BASEINTERFACE_FUNCS
  901.  
  902.     /* IUnknown methods */
  903.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  904.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  905.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  906.  
  907.     /* IDispatch methods */
  908.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  909.  
  910.     STDMETHOD(GetTypeInfo)(
  911.       THIS_
  912.       UINT itinfo,
  913.       LCID lcid,
  914.       ITypeInfo FAR* FAR* pptinfo) PURE;
  915.  
  916.     STDMETHOD(GetIDsOfNames)(
  917.       THIS_
  918.       REFIID riid,
  919.       OLECHAR FAR* FAR* rgszNames,
  920.       UINT cNames,
  921.       LCID lcid,
  922.       DISPID FAR* rgdispid) PURE;
  923.  
  924.     STDMETHOD(Invoke)(
  925.       THIS_
  926.       DISPID dispidMember,
  927.       REFIID riid,
  928.       LCID lcid,
  929.       WORD wFlags,
  930.       DISPPARAMS FAR* pdispparams,
  931.       VARIANT FAR* pvarResult,
  932.       EXCEPINFO FAR* pexcepinfo,
  933.       UINT FAR* puArgErr) PURE;
  934. #endif
  935.  
  936. /* Capable of dispatching all the methods of interface ITDBDataSet */
  937. };
  938.  
  939. DEFINE_GUID(IID_ITTable,0x2647E041,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  940.  
  941. /* Definition of interface: ITTable */
  942. DECLARE_INTERFACE_(ITTable, ITDBDataSet)
  943. {
  944. #ifndef NO_BASEINTERFACE_FUNCS
  945.  
  946.     /* IUnknown methods */
  947.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  948.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  949.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  950.  
  951.     /* ITBDTObject methods */
  952.     STDMETHOD_(void, Detach)(THIS) PURE;
  953.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  954.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  955.  
  956.     /* ITBDTComponent methods */
  957.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  958.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  959.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  960.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  961.  
  962.     /* ITDataSet methods */
  963.     STDMETHOD_(LPSTR, ActiveBuffer)(THIS) PURE;
  964.     STDMETHOD_(void, Append)(THIS) PURE;
  965.     STDMETHOD_(void, AppendRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  966.     STDMETHOD_(void, AppendRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  967.     STDMETHOD_(void, Cancel)(THIS) PURE;
  968.     STDMETHOD_(void, CheckBrowseMode)(THIS) PURE;
  969.     STDMETHOD_(void, ClearFields)(THIS) PURE;
  970.     STDMETHOD_(void, Close)(THIS) PURE;
  971.     STDMETHOD_(void, CursorPosChanged)(THIS) PURE;
  972.     STDMETHOD_(void, Delete)(THIS) PURE;
  973.     STDMETHOD_(void, DisableControls)(THIS) PURE;
  974.     STDMETHOD_(void, Edit)(THIS) PURE;
  975.     STDMETHOD_(void, EnableControls)(THIS) PURE;
  976.     STDMETHOD_(ITField FAR*, FieldByName)(THIS_ ITAnyString FAR* n) PURE;
  977.     STDMETHOD_(DTField FAR*, FieldByNameDispatch)(THIS_ BSTR n) PURE;
  978.     STDMETHOD_(ITField FAR*, FindField)(THIS_ ITAnyString FAR* n) PURE;
  979.     STDMETHOD_(DTField FAR*, FindFieldDispatch)(THIS_ BSTR n) PURE;
  980.     STDMETHOD_(void, First)(THIS) PURE;
  981.     STDMETHOD_(void, FreeBookmark)(THIS_ TBookmark bm) PURE;
  982.     STDMETHOD_(TBookmark, GetBookmark)(THIS) PURE;
  983.     STDMETHOD_(VARIANT_BOOL, GetCurrentRecord)(THIS_ LPSTR buffer) PURE;
  984.     STDMETHOD_(void, GetFieldNames)(THIS_ ITStrings FAR* strings) PURE;
  985.     STDMETHOD_(void, GetFieldNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  986.     STDMETHOD_(void, GotoBookmark)(THIS_ TBookmark bm) PURE;
  987.     STDMETHOD_(void, Insert)(THIS) PURE;
  988.     STDMETHOD_(void, InsertRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  989.     STDMETHOD_(void, InsertRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  990.     STDMETHOD_(VARIANT_BOOL, IsLinkedTo)(THIS_ ITDataSource FAR* datasource) PURE;
  991.     STDMETHOD_(VARIANT_BOOL, IsLinkedToDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  992.     STDMETHOD_(void, Last)(THIS) PURE;
  993.     STDMETHOD_(void, MoveBy)(THIS_ int o) PURE;
  994.     STDMETHOD_(void, Next)(THIS) PURE;
  995.     STDMETHOD_(void, Open)(THIS) PURE;
  996.     STDMETHOD_(void, Post)(THIS) PURE;
  997.     STDMETHOD_(void, Prior)(THIS) PURE;
  998.     STDMETHOD_(void, Refresh)(THIS) PURE;
  999.     STDMETHOD_(void, Resync)(THIS_ TResyncMode mode) PURE;
  1000.     STDMETHOD_(void, SetFields)(THIS_ int count, VARIANT FAR* values) PURE;
  1001.     STDMETHOD_(void, SetFieldsSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1002.     STDMETHOD_(void, UpdateCursorPos)(THIS) PURE;
  1003.     STDMETHOD_(void, UpdateRecord)(THIS) PURE;
  1004.     STDMETHOD_(VARIANT_BOOL, get_AtBOF)(THIS) PURE;
  1005.     STDMETHOD_(VARIANT_BOOL, get_CanModify)(THIS) PURE;
  1006.     STDMETHOD_(ITDataSource FAR*, get_DataSource)(THIS) PURE;
  1007.     STDMETHOD_(DTDataSource FAR*, get_DataSourceDispatch)(THIS) PURE;
  1008.     STDMETHOD_(VARIANT_BOOL, get_DefaultFields)(THIS) PURE;
  1009.     STDMETHOD_(VARIANT_BOOL, get_AtEOF)(THIS) PURE;
  1010.     STDMETHOD_(int, get_FieldCount)(THIS) PURE;
  1011.     STDMETHOD_(ITFieldDefs FAR*, get_FieldDefs)(THIS) PURE;
  1012.     STDMETHOD_(DTFieldDefs FAR*, get_FieldDefsDispatch)(THIS) PURE;
  1013.     STDMETHOD_(ITField FAR*, get_Fields)(THIS_ int i) PURE;
  1014.     STDMETHOD_(DTField FAR*, get_FieldsDispatch)(THIS_ int i) PURE;
  1015.     STDMETHOD_(hDBICur, get_Handle)(THIS) PURE;
  1016.     STDMETHOD_(VARIANT_BOOL, get_Modified)(THIS) PURE;
  1017.     STDMETHOD_(long, get_RecordCount)(THIS) PURE;
  1018.     STDMETHOD_(WORD, get_RecordSize)(THIS) PURE;
  1019.     STDMETHOD_(TDataSetState, get_State)(THIS) PURE;
  1020.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  1021.     STDMETHOD_(VARIANT_BOOL, get_Active)(THIS) PURE;
  1022.     STDMETHOD_(void, put_Active)(THIS_ VARIANT_BOOL a) PURE;
  1023.     STDMETHOD_(VARIANT_BOOL, get_AutoCalcFields)(THIS) PURE;
  1024.     STDMETHOD_(void, put_AutoCalcFields)(THIS_ VARIANT_BOOL a) PURE;
  1025.     STDMETHOD_(void, AttachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1026.     STDMETHOD_(void, DetachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1027.     STDMETHOD_(void, AttachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1028.     STDMETHOD_(void, DetachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1029.     STDMETHOD_(void, AttachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1030.     STDMETHOD_(void, DetachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1031.     STDMETHOD_(void, AttachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1032.     STDMETHOD_(void, DetachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1033.     STDMETHOD_(void, AttachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1034.     STDMETHOD_(void, DetachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1035.     STDMETHOD_(void, AttachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1036.     STDMETHOD_(void, DetachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1037.     STDMETHOD_(void, AttachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1038.     STDMETHOD_(void, DetachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1039.     STDMETHOD_(void, AttachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1040.     STDMETHOD_(void, DetachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1041.     STDMETHOD_(void, AttachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1042.     STDMETHOD_(void, DetachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1043.     STDMETHOD_(void, AttachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1044.     STDMETHOD_(void, DetachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1045.     STDMETHOD_(void, AttachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1046.     STDMETHOD_(void, DetachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1047.     STDMETHOD_(void, AttachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1048.     STDMETHOD_(void, DetachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1049.     STDMETHOD_(void, AttachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1050.     STDMETHOD_(void, DetachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1051.     STDMETHOD_(void, AttachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1052.     STDMETHOD_(void, DetachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1053.     STDMETHOD_(void, AttachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1054.     STDMETHOD_(void, DetachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1055.     STDMETHOD_(void, AttachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1056.     STDMETHOD_(void, DetachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1057.     STDMETHOD_(void, AttachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1058.     STDMETHOD_(void, DetachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1059.     STDMETHOD_(void, AttachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1060.     STDMETHOD_(void, DetachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1061.     STDMETHOD_(void, AttachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1062.     STDMETHOD_(void, DetachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1063.     STDMETHOD_(void, AttachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1064.     STDMETHOD_(void, DetachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1065.     STDMETHOD_(void, AttachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1066.     STDMETHOD_(void, DetachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1067.     STDMETHOD_(void, AttachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1068.     STDMETHOD_(void, DetachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1069.     STDMETHOD_(void, AttachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1070.     STDMETHOD_(void, DetachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1071.     STDMETHOD_(void, AttachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1072.     STDMETHOD_(void, DetachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1073.     STDMETHOD_(void, AttachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1074.     STDMETHOD_(void, DetachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1075.     STDMETHOD_(void, AttachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1076.     STDMETHOD_(void, DetachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1077.     STDMETHOD_(void, AttachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1078.     STDMETHOD_(void, DetachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1079.     STDMETHOD_(void, AttachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1080.     STDMETHOD_(void, DetachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1081.  
  1082.     /* ITDBDataSet methods */
  1083.     STDMETHOD_(ITDatabase FAR*, get_Database)(THIS) PURE;
  1084.     STDMETHOD_(DTDatabase FAR*, get_DatabaseDispatch)(THIS) PURE;
  1085.     STDMETHOD_(hDBIDb, get_DBHandle)(THIS) PURE;
  1086.     STDMETHOD_(TLocale, get_DBLocale)(THIS) PURE;
  1087.     STDMETHOD_(ITAnyString FAR*, get_DatabaseName)(THIS) PURE;
  1088.     STDMETHOD_(BSTR, get_DatabaseNameDispatch)(THIS) PURE;
  1089.     STDMETHOD_(void, put_DatabaseName)(THIS_ ITAnyString FAR* n) PURE;
  1090.     STDMETHOD_(void, put_DatabaseNameDispatch)(THIS_ BSTR n) PURE;
  1091. #endif
  1092.  
  1093.     /* ITTable methods */
  1094.     STDMETHOD_(long, BatchMove)(THIS_ ITDataSet FAR* dataset, TBatchMode m) PURE;
  1095.     STDMETHOD_(long, BatchMoveDispatch)(THIS_ DTDataSet FAR* dataset, TBatchMode m) PURE;
  1096.     STDMETHOD_(void, AddIndex)(THIS_ ITAnyString FAR* name, ITAnyString FAR* fields, TIndexOptions options) PURE;
  1097.     STDMETHOD_(void, AddIndexDispatch)(THIS_ BSTR name, BSTR fields, TIndexOptions options) PURE;
  1098.     STDMETHOD_(void, ApplyRange)(THIS) PURE;
  1099.     STDMETHOD_(void, CancelRange)(THIS) PURE;
  1100.     STDMETHOD_(void, CreateTable)(THIS) PURE;
  1101.     STDMETHOD_(void, DeleteIndex)(THIS_ ITAnyString FAR* n) PURE;
  1102.     STDMETHOD_(void, DeleteIndexDispatch)(THIS_ BSTR n) PURE;
  1103.     STDMETHOD_(void, DeleteTable)(THIS) PURE;
  1104.     STDMETHOD_(void, EditKey)(THIS) PURE;
  1105.     STDMETHOD_(void, EditRangeEnd)(THIS) PURE;
  1106.     STDMETHOD_(void, EditRangeStart)(THIS) PURE;
  1107.     STDMETHOD_(void, EmptyTable)(THIS) PURE;
  1108.     STDMETHOD_(VARIANT_BOOL, FindKey)(THIS_ int count, VARIANT FAR* values) PURE;
  1109.     STDMETHOD_(VARIANT_BOOL, FindKeySafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1110.     STDMETHOD_(void, FindNearest)(THIS_ int count, VARIANT FAR* values) PURE;
  1111.     STDMETHOD_(void, FindNearestSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1112.     STDMETHOD_(void, GetIndexNames)(THIS_ ITStrings FAR* strings) PURE;
  1113.     STDMETHOD_(void, GetIndexNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1114.     STDMETHOD_(void, GotoCurrent)(THIS_ ITTable FAR* table) PURE;
  1115.     STDMETHOD_(void, GotoCurrentDispatch)(THIS_ DTTable FAR* table) PURE;
  1116.     STDMETHOD_(VARIANT_BOOL, GotoKey)(THIS) PURE;
  1117.     STDMETHOD_(void, GotoNearest)(THIS) PURE;
  1118.     STDMETHOD_(void, LockTable)(THIS_ TLockType t) PURE;
  1119.     STDMETHOD_(void, RenameTable)(THIS_ ITAnyString FAR* newname) PURE;
  1120.     STDMETHOD_(void, RenameTableDispatch)(THIS_ BSTR newname) PURE;
  1121.     STDMETHOD_(void, SetKey)(THIS) PURE;
  1122.     STDMETHOD_(void, SetRange)(THIS_ int startCount, VARIANT FAR* startValues, int endCount, VARIANT FAR* endValues) PURE;
  1123.     STDMETHOD_(void, SetRangeSafe)(THIS_ SAFEARRAY FAR* psaStart, SAFEARRAY FAR* psaEnd) PURE;
  1124.     STDMETHOD_(void, SetRangeEnd)(THIS) PURE;
  1125.     STDMETHOD_(void, SetRangeStart)(THIS) PURE;
  1126.     STDMETHOD_(void, UnlockTable)(THIS_ TLockType t) PURE;
  1127.     STDMETHOD_(ITIndexDefs FAR*, get_IndexDefs)(THIS) PURE;
  1128.     STDMETHOD_(DTIndexDefs FAR*, get_IndexDefsDispatch)(THIS) PURE;
  1129.     STDMETHOD_(int, get_IndexFieldCount)(THIS) PURE;
  1130.     STDMETHOD_(ITField FAR*, get_IndexFields)(THIS_ int i) PURE;
  1131.     STDMETHOD_(DTField FAR*, get_IndexFieldsDispatch)(THIS_ int i) PURE;
  1132.     STDMETHOD_(VARIANT_BOOL, get_KeyExclusive)(THIS) PURE;
  1133.     STDMETHOD_(void, put_KeyExclusive)(THIS_ VARIANT_BOOL k) PURE;
  1134.     STDMETHOD_(int, get_KeyFieldCount)(THIS) PURE;
  1135.     STDMETHOD_(void, put_KeyFieldCount)(THIS_ int c) PURE;
  1136.     STDMETHOD_(VARIANT_BOOL, get_Exclusive)(THIS) PURE;
  1137.     STDMETHOD_(void, put_Exclusive)(THIS_ VARIANT_BOOL ex) PURE;
  1138.     STDMETHOD_(ITAnyString FAR*, get_IndexFieldNames)(THIS) PURE;
  1139.     STDMETHOD_(BSTR, get_IndexFieldNamesDispatch)(THIS) PURE;
  1140.     STDMETHOD_(void, put_IndexFieldNames)(THIS_ ITAnyString FAR* n) PURE;
  1141.     STDMETHOD_(void, put_IndexFieldNamesDispatch)(THIS_ BSTR n) PURE;
  1142.     STDMETHOD_(ITAnyString FAR*, get_IndexName)(THIS) PURE;
  1143.     STDMETHOD_(BSTR, get_IndexNameDispatch)(THIS) PURE;
  1144.     STDMETHOD_(void, put_IndexName)(THIS_ ITAnyString FAR* n) PURE;
  1145.     STDMETHOD_(void, put_IndexNameDispatch)(THIS_ BSTR n) PURE;
  1146.     STDMETHOD_(ITAnyString FAR*, get_MasterFields)(THIS) PURE;
  1147.     STDMETHOD_(BSTR, get_MasterFieldsDispatch)(THIS) PURE;
  1148.     STDMETHOD_(void, put_MasterFields)(THIS_ ITAnyString FAR* m) PURE;
  1149.     STDMETHOD_(void, put_MasterFieldsDispatch)(THIS_ BSTR m) PURE;
  1150.     STDMETHOD_(ITDataSource FAR*, get_MasterSource)(THIS) PURE;
  1151.     STDMETHOD_(DTDataSource FAR*, get_MasterSourceDispatch)(THIS) PURE;
  1152.     STDMETHOD_(void, put_MasterSource)(THIS_ ITDataSource FAR* datasource) PURE;
  1153.     STDMETHOD_(void, put_MasterSourceDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  1154.     STDMETHOD_(VARIANT_BOOL, get_ReadOnly)(THIS) PURE;
  1155.     STDMETHOD_(void, put_ReadOnly)(THIS_ VARIANT_BOOL r) PURE;
  1156.     STDMETHOD_(ITAnyString FAR*, get_TableName)(THIS) PURE;
  1157.     STDMETHOD_(BSTR, get_TableNameDispatch)(THIS) PURE;
  1158.     STDMETHOD_(void, put_TableName)(THIS_ ITAnyString FAR* n) PURE;
  1159.     STDMETHOD_(void, put_TableNameDispatch)(THIS_ BSTR n) PURE;
  1160.     STDMETHOD_(TTableType, get_TableType)(THIS) PURE;
  1161.     STDMETHOD_(void, put_TableType)(THIS_ TTableType t) PURE;
  1162.     STDMETHOD_(TUpdateMode, get_UpdateMode)(THIS) PURE;
  1163.     STDMETHOD_(void, put_UpdateMode)(THIS_ TUpdateMode u) PURE;
  1164. };
  1165.  
  1166. DEFINE_GUID(DIID_DTTable,0x2647E042,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1167.  
  1168. /* Definition of dispatch interface: DTTable */
  1169. DECLARE_INTERFACE_(DTTable, IDispatch)
  1170. {
  1171. #ifndef NO_BASEINTERFACE_FUNCS
  1172.  
  1173.     /* IUnknown methods */
  1174.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1175.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1176.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1177.  
  1178.     /* IDispatch methods */
  1179.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1180.  
  1181.     STDMETHOD(GetTypeInfo)(
  1182.       THIS_
  1183.       UINT itinfo,
  1184.       LCID lcid,
  1185.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1186.  
  1187.     STDMETHOD(GetIDsOfNames)(
  1188.       THIS_
  1189.       REFIID riid,
  1190.       OLECHAR FAR* FAR* rgszNames,
  1191.       UINT cNames,
  1192.       LCID lcid,
  1193.       DISPID FAR* rgdispid) PURE;
  1194.  
  1195.     STDMETHOD(Invoke)(
  1196.       THIS_
  1197.       DISPID dispidMember,
  1198.       REFIID riid,
  1199.       LCID lcid,
  1200.       WORD wFlags,
  1201.       DISPPARAMS FAR* pdispparams,
  1202.       VARIANT FAR* pvarResult,
  1203.       EXCEPINFO FAR* pexcepinfo,
  1204.       UINT FAR* puArgErr) PURE;
  1205. #endif
  1206.  
  1207. /* Capable of dispatching all the methods of interface ITTable */
  1208. };
  1209.  
  1210. DEFINE_GUID(CLSID_TTable,0x2647E043,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1211.  
  1212.  
  1213. DEFINE_GUID(IID_ITQuery,0x2647E051,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1214.  
  1215. /* Definition of interface: ITQuery */
  1216. DECLARE_INTERFACE_(ITQuery, ITDBDataSet)
  1217. {
  1218. #ifndef NO_BASEINTERFACE_FUNCS
  1219.  
  1220.     /* IUnknown methods */
  1221.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1222.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1223.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1224.  
  1225.     /* ITBDTObject methods */
  1226.     STDMETHOD_(void, Detach)(THIS) PURE;
  1227.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  1228.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  1229.  
  1230.     /* ITBDTComponent methods */
  1231.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  1232.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  1233.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  1234.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  1235.  
  1236.     /* ITDataSet methods */
  1237.     STDMETHOD_(LPSTR, ActiveBuffer)(THIS) PURE;
  1238.     STDMETHOD_(void, Append)(THIS) PURE;
  1239.     STDMETHOD_(void, AppendRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  1240.     STDMETHOD_(void, AppendRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1241.     STDMETHOD_(void, Cancel)(THIS) PURE;
  1242.     STDMETHOD_(void, CheckBrowseMode)(THIS) PURE;
  1243.     STDMETHOD_(void, ClearFields)(THIS) PURE;
  1244.     STDMETHOD_(void, Close)(THIS) PURE;
  1245.     STDMETHOD_(void, CursorPosChanged)(THIS) PURE;
  1246.     STDMETHOD_(void, Delete)(THIS) PURE;
  1247.     STDMETHOD_(void, DisableControls)(THIS) PURE;
  1248.     STDMETHOD_(void, Edit)(THIS) PURE;
  1249.     STDMETHOD_(void, EnableControls)(THIS) PURE;
  1250.     STDMETHOD_(ITField FAR*, FieldByName)(THIS_ ITAnyString FAR* n) PURE;
  1251.     STDMETHOD_(DTField FAR*, FieldByNameDispatch)(THIS_ BSTR n) PURE;
  1252.     STDMETHOD_(ITField FAR*, FindField)(THIS_ ITAnyString FAR* n) PURE;
  1253.     STDMETHOD_(DTField FAR*, FindFieldDispatch)(THIS_ BSTR n) PURE;
  1254.     STDMETHOD_(void, First)(THIS) PURE;
  1255.     STDMETHOD_(void, FreeBookmark)(THIS_ TBookmark bm) PURE;
  1256.     STDMETHOD_(TBookmark, GetBookmark)(THIS) PURE;
  1257.     STDMETHOD_(VARIANT_BOOL, GetCurrentRecord)(THIS_ LPSTR buffer) PURE;
  1258.     STDMETHOD_(void, GetFieldNames)(THIS_ ITStrings FAR* strings) PURE;
  1259.     STDMETHOD_(void, GetFieldNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1260.     STDMETHOD_(void, GotoBookmark)(THIS_ TBookmark bm) PURE;
  1261.     STDMETHOD_(void, Insert)(THIS) PURE;
  1262.     STDMETHOD_(void, InsertRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  1263.     STDMETHOD_(void, InsertRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1264.     STDMETHOD_(VARIANT_BOOL, IsLinkedTo)(THIS_ ITDataSource FAR* datasource) PURE;
  1265.     STDMETHOD_(VARIANT_BOOL, IsLinkedToDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  1266.     STDMETHOD_(void, Last)(THIS) PURE;
  1267.     STDMETHOD_(void, MoveBy)(THIS_ int o) PURE;
  1268.     STDMETHOD_(void, Next)(THIS) PURE;
  1269.     STDMETHOD_(void, Open)(THIS) PURE;
  1270.     STDMETHOD_(void, Post)(THIS) PURE;
  1271.     STDMETHOD_(void, Prior)(THIS) PURE;
  1272.     STDMETHOD_(void, Refresh)(THIS) PURE;
  1273.     STDMETHOD_(void, Resync)(THIS_ TResyncMode mode) PURE;
  1274.     STDMETHOD_(void, SetFields)(THIS_ int count, VARIANT FAR* values) PURE;
  1275.     STDMETHOD_(void, SetFieldsSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1276.     STDMETHOD_(void, UpdateCursorPos)(THIS) PURE;
  1277.     STDMETHOD_(void, UpdateRecord)(THIS) PURE;
  1278.     STDMETHOD_(VARIANT_BOOL, get_AtBOF)(THIS) PURE;
  1279.     STDMETHOD_(VARIANT_BOOL, get_CanModify)(THIS) PURE;
  1280.     STDMETHOD_(ITDataSource FAR*, get_DataSource)(THIS) PURE;
  1281.     STDMETHOD_(DTDataSource FAR*, get_DataSourceDispatch)(THIS) PURE;
  1282.     STDMETHOD_(VARIANT_BOOL, get_DefaultFields)(THIS) PURE;
  1283.     STDMETHOD_(VARIANT_BOOL, get_AtEOF)(THIS) PURE;
  1284.     STDMETHOD_(int, get_FieldCount)(THIS) PURE;
  1285.     STDMETHOD_(ITFieldDefs FAR*, get_FieldDefs)(THIS) PURE;
  1286.     STDMETHOD_(DTFieldDefs FAR*, get_FieldDefsDispatch)(THIS) PURE;
  1287.     STDMETHOD_(ITField FAR*, get_Fields)(THIS_ int i) PURE;
  1288.     STDMETHOD_(DTField FAR*, get_FieldsDispatch)(THIS_ int i) PURE;
  1289.     STDMETHOD_(hDBICur, get_Handle)(THIS) PURE;
  1290.     STDMETHOD_(VARIANT_BOOL, get_Modified)(THIS) PURE;
  1291.     STDMETHOD_(long, get_RecordCount)(THIS) PURE;
  1292.     STDMETHOD_(WORD, get_RecordSize)(THIS) PURE;
  1293.     STDMETHOD_(TDataSetState, get_State)(THIS) PURE;
  1294.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  1295.     STDMETHOD_(VARIANT_BOOL, get_Active)(THIS) PURE;
  1296.     STDMETHOD_(void, put_Active)(THIS_ VARIANT_BOOL a) PURE;
  1297.     STDMETHOD_(VARIANT_BOOL, get_AutoCalcFields)(THIS) PURE;
  1298.     STDMETHOD_(void, put_AutoCalcFields)(THIS_ VARIANT_BOOL a) PURE;
  1299.     STDMETHOD_(void, AttachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1300.     STDMETHOD_(void, DetachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1301.     STDMETHOD_(void, AttachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1302.     STDMETHOD_(void, DetachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1303.     STDMETHOD_(void, AttachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1304.     STDMETHOD_(void, DetachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1305.     STDMETHOD_(void, AttachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1306.     STDMETHOD_(void, DetachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1307.     STDMETHOD_(void, AttachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1308.     STDMETHOD_(void, DetachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1309.     STDMETHOD_(void, AttachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1310.     STDMETHOD_(void, DetachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1311.     STDMETHOD_(void, AttachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1312.     STDMETHOD_(void, DetachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1313.     STDMETHOD_(void, AttachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1314.     STDMETHOD_(void, DetachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1315.     STDMETHOD_(void, AttachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1316.     STDMETHOD_(void, DetachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1317.     STDMETHOD_(void, AttachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1318.     STDMETHOD_(void, DetachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1319.     STDMETHOD_(void, AttachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1320.     STDMETHOD_(void, DetachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1321.     STDMETHOD_(void, AttachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1322.     STDMETHOD_(void, DetachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1323.     STDMETHOD_(void, AttachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1324.     STDMETHOD_(void, DetachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1325.     STDMETHOD_(void, AttachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1326.     STDMETHOD_(void, DetachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1327.     STDMETHOD_(void, AttachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1328.     STDMETHOD_(void, DetachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1329.     STDMETHOD_(void, AttachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1330.     STDMETHOD_(void, DetachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1331.     STDMETHOD_(void, AttachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1332.     STDMETHOD_(void, DetachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1333.     STDMETHOD_(void, AttachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1334.     STDMETHOD_(void, DetachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1335.     STDMETHOD_(void, AttachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1336.     STDMETHOD_(void, DetachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1337.     STDMETHOD_(void, AttachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1338.     STDMETHOD_(void, DetachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1339.     STDMETHOD_(void, AttachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1340.     STDMETHOD_(void, DetachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1341.     STDMETHOD_(void, AttachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1342.     STDMETHOD_(void, DetachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1343.     STDMETHOD_(void, AttachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1344.     STDMETHOD_(void, DetachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1345.     STDMETHOD_(void, AttachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1346.     STDMETHOD_(void, DetachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1347.     STDMETHOD_(void, AttachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1348.     STDMETHOD_(void, DetachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1349.     STDMETHOD_(void, AttachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1350.     STDMETHOD_(void, DetachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1351.     STDMETHOD_(void, AttachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1352.     STDMETHOD_(void, DetachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1353.     STDMETHOD_(void, AttachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1354.     STDMETHOD_(void, DetachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1355.  
  1356.     /* ITDBDataSet methods */
  1357.     STDMETHOD_(ITDatabase FAR*, get_Database)(THIS) PURE;
  1358.     STDMETHOD_(DTDatabase FAR*, get_DatabaseDispatch)(THIS) PURE;
  1359.     STDMETHOD_(hDBIDb, get_DBHandle)(THIS) PURE;
  1360.     STDMETHOD_(TLocale, get_DBLocale)(THIS) PURE;
  1361.     STDMETHOD_(ITAnyString FAR*, get_DatabaseName)(THIS) PURE;
  1362.     STDMETHOD_(BSTR, get_DatabaseNameDispatch)(THIS) PURE;
  1363.     STDMETHOD_(void, put_DatabaseName)(THIS_ ITAnyString FAR* n) PURE;
  1364.     STDMETHOD_(void, put_DatabaseNameDispatch)(THIS_ BSTR n) PURE;
  1365. #endif
  1366.  
  1367.     /* ITQuery methods */
  1368.     STDMETHOD_(void, ExecSQL)(THIS) PURE;
  1369.     STDMETHOD_(ITParam FAR*, ParamByName)(THIS_ ITAnyString FAR* value) PURE;
  1370.     STDMETHOD_(DTParam FAR*, ParamByNameDispatch)(THIS_ BSTR value) PURE;
  1371.     STDMETHOD_(void, Prepare)(THIS) PURE;
  1372.     STDMETHOD_(void, UnPrepare)(THIS) PURE;
  1373.     STDMETHOD_(VARIANT_BOOL, get_Prepared)(THIS) PURE;
  1374.     STDMETHOD_(void, put_Prepared)(THIS_ VARIANT_BOOL p) PURE;
  1375.     STDMETHOD_(WORD, get_ParamCount)(THIS) PURE;
  1376.     STDMETHOD_(VARIANT_BOOL, get_Local)(THIS) PURE;
  1377.     STDMETHOD_(hDBIStmt, get_StmtHandle)(THIS) PURE;
  1378.     STDMETHOD_(ITAnyString FAR*, get_Text)(THIS) PURE;
  1379.     STDMETHOD_(BSTR, get_TextDispatch)(THIS) PURE;
  1380.     STDMETHOD_(ITStrings FAR*, get_SQL)(THIS) PURE;
  1381.     STDMETHOD_(DTStrings FAR*, get_SQLDispatch)(THIS) PURE;
  1382.     STDMETHOD_(void, put_SQL)(THIS_ ITStrings FAR* strings) PURE;
  1383.     STDMETHOD_(void, put_SQLDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1384.     STDMETHOD_(void, put_DataSource)(THIS_ ITDataSource FAR* datasource) PURE;
  1385.     STDMETHOD_(void, put_DataSourceDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  1386.     STDMETHOD_(VARIANT_BOOL, get_UniDirectional)(THIS) PURE;
  1387.     STDMETHOD_(void, put_UniDirectional)(THIS_ VARIANT_BOOL u) PURE;
  1388.     STDMETHOD_(VARIANT_BOOL, get_RequestLive)(THIS) PURE;
  1389.     STDMETHOD_(void, put_RequestLive)(THIS_ VARIANT_BOOL r) PURE;
  1390.     STDMETHOD_(ITParams FAR*, get_Params)(THIS) PURE;
  1391.     STDMETHOD_(DTParams FAR*, get_ParamsDispatch)(THIS) PURE;
  1392.     STDMETHOD_(void, put_Params)(THIS_ ITParams FAR* params) PURE;
  1393.     STDMETHOD_(void, put_ParamsDispatch)(THIS_ DTParams FAR* params) PURE;
  1394.     STDMETHOD_(TUpdateMode, get_UpdateMode)(THIS) PURE;
  1395.     STDMETHOD_(void, put_UpdateMode)(THIS_ TUpdateMode u) PURE;
  1396. };
  1397.  
  1398. DEFINE_GUID(DIID_DTQuery,0x2647E052,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1399.  
  1400. /* Definition of dispatch interface: DTQuery */
  1401. DECLARE_INTERFACE_(DTQuery, IDispatch)
  1402. {
  1403. #ifndef NO_BASEINTERFACE_FUNCS
  1404.  
  1405.     /* IUnknown methods */
  1406.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1407.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1408.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1409.  
  1410.     /* IDispatch methods */
  1411.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1412.  
  1413.     STDMETHOD(GetTypeInfo)(
  1414.       THIS_
  1415.       UINT itinfo,
  1416.       LCID lcid,
  1417.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1418.  
  1419.     STDMETHOD(GetIDsOfNames)(
  1420.       THIS_
  1421.       REFIID riid,
  1422.       OLECHAR FAR* FAR* rgszNames,
  1423.       UINT cNames,
  1424.       LCID lcid,
  1425.       DISPID FAR* rgdispid) PURE;
  1426.  
  1427.     STDMETHOD(Invoke)(
  1428.       THIS_
  1429.       DISPID dispidMember,
  1430.       REFIID riid,
  1431.       LCID lcid,
  1432.       WORD wFlags,
  1433.       DISPPARAMS FAR* pdispparams,
  1434.       VARIANT FAR* pvarResult,
  1435.       EXCEPINFO FAR* pexcepinfo,
  1436.       UINT FAR* puArgErr) PURE;
  1437. #endif
  1438.  
  1439. /* Capable of dispatching all the methods of interface ITQuery */
  1440. };
  1441.  
  1442. DEFINE_GUID(CLSID_TQuery,0x2647E053,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1443.  
  1444.  
  1445. DEFINE_GUID(IID_ITStoredProc,0x2647E061,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1446.  
  1447. /* Definition of interface: ITStoredProc */
  1448. DECLARE_INTERFACE_(ITStoredProc, ITDBDataSet)
  1449. {
  1450. #ifndef NO_BASEINTERFACE_FUNCS
  1451.  
  1452.     /* IUnknown methods */
  1453.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1454.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1455.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1456.  
  1457.     /* ITBDTObject methods */
  1458.     STDMETHOD_(void, Detach)(THIS) PURE;
  1459.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  1460.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  1461.  
  1462.     /* ITBDTComponent methods */
  1463.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  1464.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  1465.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  1466.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  1467.  
  1468.     /* ITDataSet methods */
  1469.     STDMETHOD_(LPSTR, ActiveBuffer)(THIS) PURE;
  1470.     STDMETHOD_(void, Append)(THIS) PURE;
  1471.     STDMETHOD_(void, AppendRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  1472.     STDMETHOD_(void, AppendRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1473.     STDMETHOD_(void, Cancel)(THIS) PURE;
  1474.     STDMETHOD_(void, CheckBrowseMode)(THIS) PURE;
  1475.     STDMETHOD_(void, ClearFields)(THIS) PURE;
  1476.     STDMETHOD_(void, Close)(THIS) PURE;
  1477.     STDMETHOD_(void, CursorPosChanged)(THIS) PURE;
  1478.     STDMETHOD_(void, Delete)(THIS) PURE;
  1479.     STDMETHOD_(void, DisableControls)(THIS) PURE;
  1480.     STDMETHOD_(void, Edit)(THIS) PURE;
  1481.     STDMETHOD_(void, EnableControls)(THIS) PURE;
  1482.     STDMETHOD_(ITField FAR*, FieldByName)(THIS_ ITAnyString FAR* n) PURE;
  1483.     STDMETHOD_(DTField FAR*, FieldByNameDispatch)(THIS_ BSTR n) PURE;
  1484.     STDMETHOD_(ITField FAR*, FindField)(THIS_ ITAnyString FAR* n) PURE;
  1485.     STDMETHOD_(DTField FAR*, FindFieldDispatch)(THIS_ BSTR n) PURE;
  1486.     STDMETHOD_(void, First)(THIS) PURE;
  1487.     STDMETHOD_(void, FreeBookmark)(THIS_ TBookmark bm) PURE;
  1488.     STDMETHOD_(TBookmark, GetBookmark)(THIS) PURE;
  1489.     STDMETHOD_(VARIANT_BOOL, GetCurrentRecord)(THIS_ LPSTR buffer) PURE;
  1490.     STDMETHOD_(void, GetFieldNames)(THIS_ ITStrings FAR* strings) PURE;
  1491.     STDMETHOD_(void, GetFieldNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1492.     STDMETHOD_(void, GotoBookmark)(THIS_ TBookmark bm) PURE;
  1493.     STDMETHOD_(void, Insert)(THIS) PURE;
  1494.     STDMETHOD_(void, InsertRecord)(THIS_ int count, VARIANT FAR* values) PURE;
  1495.     STDMETHOD_(void, InsertRecordSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1496.     STDMETHOD_(VARIANT_BOOL, IsLinkedTo)(THIS_ ITDataSource FAR* datasource) PURE;
  1497.     STDMETHOD_(VARIANT_BOOL, IsLinkedToDispatch)(THIS_ DTDataSource FAR* datasource) PURE;
  1498.     STDMETHOD_(void, Last)(THIS) PURE;
  1499.     STDMETHOD_(void, MoveBy)(THIS_ int o) PURE;
  1500.     STDMETHOD_(void, Next)(THIS) PURE;
  1501.     STDMETHOD_(void, Open)(THIS) PURE;
  1502.     STDMETHOD_(void, Post)(THIS) PURE;
  1503.     STDMETHOD_(void, Prior)(THIS) PURE;
  1504.     STDMETHOD_(void, Refresh)(THIS) PURE;
  1505.     STDMETHOD_(void, Resync)(THIS_ TResyncMode mode) PURE;
  1506.     STDMETHOD_(void, SetFields)(THIS_ int count, VARIANT FAR* values) PURE;
  1507.     STDMETHOD_(void, SetFieldsSafe)(THIS_ SAFEARRAY FAR* psa) PURE;
  1508.     STDMETHOD_(void, UpdateCursorPos)(THIS) PURE;
  1509.     STDMETHOD_(void, UpdateRecord)(THIS) PURE;
  1510.     STDMETHOD_(VARIANT_BOOL, get_AtBOF)(THIS) PURE;
  1511.     STDMETHOD_(VARIANT_BOOL, get_CanModify)(THIS) PURE;
  1512.     STDMETHOD_(ITDataSource FAR*, get_DataSource)(THIS) PURE;
  1513.     STDMETHOD_(DTDataSource FAR*, get_DataSourceDispatch)(THIS) PURE;
  1514.     STDMETHOD_(VARIANT_BOOL, get_DefaultFields)(THIS) PURE;
  1515.     STDMETHOD_(VARIANT_BOOL, get_AtEOF)(THIS) PURE;
  1516.     STDMETHOD_(int, get_FieldCount)(THIS) PURE;
  1517.     STDMETHOD_(ITFieldDefs FAR*, get_FieldDefs)(THIS) PURE;
  1518.     STDMETHOD_(DTFieldDefs FAR*, get_FieldDefsDispatch)(THIS) PURE;
  1519.     STDMETHOD_(ITField FAR*, get_Fields)(THIS_ int i) PURE;
  1520.     STDMETHOD_(DTField FAR*, get_FieldsDispatch)(THIS_ int i) PURE;
  1521.     STDMETHOD_(hDBICur, get_Handle)(THIS) PURE;
  1522.     STDMETHOD_(VARIANT_BOOL, get_Modified)(THIS) PURE;
  1523.     STDMETHOD_(long, get_RecordCount)(THIS) PURE;
  1524.     STDMETHOD_(WORD, get_RecordSize)(THIS) PURE;
  1525.     STDMETHOD_(TDataSetState, get_State)(THIS) PURE;
  1526.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  1527.     STDMETHOD_(VARIANT_BOOL, get_Active)(THIS) PURE;
  1528.     STDMETHOD_(void, put_Active)(THIS_ VARIANT_BOOL a) PURE;
  1529.     STDMETHOD_(VARIANT_BOOL, get_AutoCalcFields)(THIS) PURE;
  1530.     STDMETHOD_(void, put_AutoCalcFields)(THIS_ VARIANT_BOOL a) PURE;
  1531.     STDMETHOD_(void, AttachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1532.     STDMETHOD_(void, DetachBeforeOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1533.     STDMETHOD_(void, AttachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1534.     STDMETHOD_(void, DetachAfterOpen)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1535.     STDMETHOD_(void, AttachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1536.     STDMETHOD_(void, DetachBeforeClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1537.     STDMETHOD_(void, AttachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1538.     STDMETHOD_(void, DetachAfterClose)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1539.     STDMETHOD_(void, AttachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1540.     STDMETHOD_(void, DetachBeforeInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1541.     STDMETHOD_(void, AttachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1542.     STDMETHOD_(void, DetachAfterInsert)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1543.     STDMETHOD_(void, AttachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1544.     STDMETHOD_(void, DetachBeforeEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1545.     STDMETHOD_(void, AttachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1546.     STDMETHOD_(void, DetachAfterEdit)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1547.     STDMETHOD_(void, AttachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1548.     STDMETHOD_(void, DetachBeforePost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1549.     STDMETHOD_(void, AttachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1550.     STDMETHOD_(void, DetachAfterPost)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1551.     STDMETHOD_(void, AttachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1552.     STDMETHOD_(void, DetachBeforeCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1553.     STDMETHOD_(void, AttachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1554.     STDMETHOD_(void, DetachAfterCancel)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1555.     STDMETHOD_(void, AttachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1556.     STDMETHOD_(void, DetachBeforeDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1557.     STDMETHOD_(void, AttachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1558.     STDMETHOD_(void, DetachAfterDelete)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1559.     STDMETHOD_(void, AttachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1560.     STDMETHOD_(void, DetachOnNewRecord)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1561.     STDMETHOD_(void, AttachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1562.     STDMETHOD_(void, DetachOnCalcFields)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1563.     STDMETHOD_(void, AttachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1564.     STDMETHOD_(void, DetachBeforeFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1565.     STDMETHOD_(void, AttachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1566.     STDMETHOD_(void, DetachAfterFirst)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1567.     STDMETHOD_(void, AttachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1568.     STDMETHOD_(void, DetachBeforeGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1569.     STDMETHOD_(void, AttachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1570.     STDMETHOD_(void, DetachAfterGotoBookmark)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1571.     STDMETHOD_(void, AttachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1572.     STDMETHOD_(void, DetachBeforeLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1573.     STDMETHOD_(void, AttachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1574.     STDMETHOD_(void, DetachAfterLast)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1575.     STDMETHOD_(void, AttachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1576.     STDMETHOD_(void, DetachBeforeMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1577.     STDMETHOD_(void, AttachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1578.     STDMETHOD_(void, DetachAfterMoveBy)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1579.     STDMETHOD_(void, AttachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1580.     STDMETHOD_(void, DetachBeforeNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1581.     STDMETHOD_(void, AttachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1582.     STDMETHOD_(void, DetachAfterNext)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1583.     STDMETHOD_(void, AttachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1584.     STDMETHOD_(void, DetachBeforePrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1585.     STDMETHOD_(void, AttachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1586.     STDMETHOD_(void, DetachAfterPrior)(THIS_ NDataSetNotifyEvent Callback, long Data) PURE;
  1587.  
  1588.     /* ITDBDataSet methods */
  1589.     STDMETHOD_(ITDatabase FAR*, get_Database)(THIS) PURE;
  1590.     STDMETHOD_(DTDatabase FAR*, get_DatabaseDispatch)(THIS) PURE;
  1591.     STDMETHOD_(hDBIDb, get_DBHandle)(THIS) PURE;
  1592.     STDMETHOD_(TLocale, get_DBLocale)(THIS) PURE;
  1593.     STDMETHOD_(ITAnyString FAR*, get_DatabaseName)(THIS) PURE;
  1594.     STDMETHOD_(BSTR, get_DatabaseNameDispatch)(THIS) PURE;
  1595.     STDMETHOD_(void, put_DatabaseName)(THIS_ ITAnyString FAR* n) PURE;
  1596.     STDMETHOD_(void, put_DatabaseNameDispatch)(THIS_ BSTR n) PURE;
  1597. #endif
  1598.  
  1599.     /* ITStoredProc methods */
  1600.     STDMETHOD_(void, CopyParams)(THIS_ ITParams FAR* params) PURE;
  1601.     STDMETHOD_(void, CopyParamsDispatch)(THIS_ DTParams FAR* params) PURE;
  1602.     STDMETHOD_(VARIANT_BOOL, get_DescriptionsAvailable)(THIS) PURE;
  1603.     STDMETHOD_(void, ExecProc)(THIS) PURE;
  1604.     STDMETHOD_(ITParam FAR*, ParamByName)(THIS_ ITAnyString FAR* value) PURE;
  1605.     STDMETHOD_(DTParam FAR*, ParamByNameDispatch)(THIS_ BSTR value) PURE;
  1606.     STDMETHOD_(void, Prepare)(THIS) PURE;
  1607.     STDMETHOD_(void, GetResults)(THIS) PURE;
  1608.     STDMETHOD_(void, UnPrepare)(THIS) PURE;
  1609.     STDMETHOD_(WORD, get_ParamCount)(THIS) PURE;
  1610.     STDMETHOD_(hDBIStmt, get_StmtHandle)(THIS) PURE;
  1611.     STDMETHOD_(VARIANT_BOOL, get_Prepared)(THIS) PURE;
  1612.     STDMETHOD_(void, put_Prepared)(THIS_ VARIANT_BOOL p) PURE;
  1613.     STDMETHOD_(ITAnyString FAR*, get_StoredProcName)(THIS) PURE;
  1614.     STDMETHOD_(BSTR, get_StoredProcNameDispatch)(THIS) PURE;
  1615.     STDMETHOD_(void, put_StoredProcName)(THIS_ ITAnyString FAR* n) PURE;
  1616.     STDMETHOD_(void, put_StoredProcNameDispatch)(THIS_ BSTR n) PURE;
  1617.     STDMETHOD_(WORD, get_Overload)(THIS) PURE;
  1618.     STDMETHOD_(void, put_Overload)(THIS_ WORD o) PURE;
  1619.     STDMETHOD_(ITParams FAR*, get_Params)(THIS) PURE;
  1620.     STDMETHOD_(DTParams FAR*, get_ParamsDispatch)(THIS) PURE;
  1621.     STDMETHOD_(void, put_Params)(THIS_ ITParams FAR* params) PURE;
  1622.     STDMETHOD_(void, put_ParamsDispatch)(THIS_ DTParams FAR* params) PURE;
  1623.     STDMETHOD_(TParamBindMode, get_ParamBindMode)(THIS) PURE;
  1624.     STDMETHOD_(void, put_ParamBindMode)(THIS_ TParamBindMode m) PURE;
  1625. };
  1626.  
  1627. DEFINE_GUID(DIID_DTStoredProc,0x2647E062,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1628.  
  1629. /* Definition of dispatch interface: DTStoredProc */
  1630. DECLARE_INTERFACE_(DTStoredProc, IDispatch)
  1631. {
  1632. #ifndef NO_BASEINTERFACE_FUNCS
  1633.  
  1634.     /* IUnknown methods */
  1635.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1636.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1637.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1638.  
  1639.     /* IDispatch methods */
  1640.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1641.  
  1642.     STDMETHOD(GetTypeInfo)(
  1643.       THIS_
  1644.       UINT itinfo,
  1645.       LCID lcid,
  1646.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1647.  
  1648.     STDMETHOD(GetIDsOfNames)(
  1649.       THIS_
  1650.       REFIID riid,
  1651.       OLECHAR FAR* FAR* rgszNames,
  1652.       UINT cNames,
  1653.       LCID lcid,
  1654.       DISPID FAR* rgdispid) PURE;
  1655.  
  1656.     STDMETHOD(Invoke)(
  1657.       THIS_
  1658.       DISPID dispidMember,
  1659.       REFIID riid,
  1660.       LCID lcid,
  1661.       WORD wFlags,
  1662.       DISPPARAMS FAR* pdispparams,
  1663.       VARIANT FAR* pvarResult,
  1664.       EXCEPINFO FAR* pexcepinfo,
  1665.       UINT FAR* puArgErr) PURE;
  1666. #endif
  1667.  
  1668. /* Capable of dispatching all the methods of interface ITStoredProc */
  1669. };
  1670.  
  1671. DEFINE_GUID(CLSID_TStoredProc,0x2647E063,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1672.  
  1673.  
  1674. DEFINE_GUID(IID_ITDatabase,0x2647E071,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1675.  
  1676. /* Definition of interface: ITDatabase */
  1677. DECLARE_INTERFACE_(ITDatabase, ITBDTComponent)
  1678. {
  1679. #ifndef NO_BASEINTERFACE_FUNCS
  1680.  
  1681.     /* IUnknown methods */
  1682.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1683.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1684.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1685.  
  1686.     /* ITBDTObject methods */
  1687.     STDMETHOD_(void, Detach)(THIS) PURE;
  1688.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  1689.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  1690.  
  1691.     /* ITBDTComponent methods */
  1692.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  1693.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  1694.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  1695.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  1696. #endif
  1697.  
  1698.     /* ITDatabase methods */
  1699.     STDMETHOD_(void, Close)(THIS) PURE;
  1700.     STDMETHOD_(void, CloseDatasets)(THIS) PURE;
  1701.     STDMETHOD_(void, Commit)(THIS) PURE;
  1702.     STDMETHOD_(void, Open)(THIS) PURE;
  1703.     STDMETHOD_(void, Rollback)(THIS) PURE;
  1704.     STDMETHOD_(void, StartTransaction)(THIS) PURE;
  1705.     STDMETHOD_(void, ValidateName)(THIS_ ITAnyString FAR* name) PURE;
  1706.     STDMETHOD_(void, ValidateNameDispatch)(THIS_ BSTR name) PURE;
  1707.     STDMETHOD_(int, get_DatasetCount)(THIS) PURE;
  1708.     STDMETHOD_(ITDBDataSet FAR*, get_Datasets)(THIS_ int i) PURE;
  1709.     STDMETHOD_(DTDBDataSet FAR*, get_DatasetsDispatch)(THIS_ int i) PURE;
  1710.     STDMETHOD_(hDBIDb, get_Handle)(THIS) PURE;
  1711.     STDMETHOD_(VARIANT_BOOL, get_IsSQLBased)(THIS) PURE;
  1712.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  1713.     STDMETHOD_(VARIANT_BOOL, get_Temporary)(THIS) PURE;
  1714.     STDMETHOD_(void, put_Temporary)(THIS_ VARIANT_BOOL t) PURE;
  1715.     STDMETHOD_(ITAnyString FAR*, get_AliasName)(THIS) PURE;
  1716.     STDMETHOD_(BSTR, get_AliasNameDispatch)(THIS) PURE;
  1717.     STDMETHOD_(void, put_AliasName)(THIS_ ITAnyString FAR* n) PURE;
  1718.     STDMETHOD_(void, put_AliasNameDispatch)(THIS_ BSTR n) PURE;
  1719.     STDMETHOD_(VARIANT_BOOL, get_Connected)(THIS) PURE;
  1720.     STDMETHOD_(void, put_Connected)(THIS_ VARIANT_BOOL c) PURE;
  1721.     STDMETHOD_(ITAnyString FAR*, get_DatabaseName)(THIS) PURE;
  1722.     STDMETHOD_(BSTR, get_DatabaseNameDispatch)(THIS) PURE;
  1723.     STDMETHOD_(void, put_DatabaseName)(THIS_ ITAnyString FAR* n) PURE;
  1724.     STDMETHOD_(void, put_DatabaseNameDispatch)(THIS_ BSTR n) PURE;
  1725.     STDMETHOD_(ITAnyString FAR*, get_DriverName)(THIS) PURE;
  1726.     STDMETHOD_(BSTR, get_DriverNameDispatch)(THIS) PURE;
  1727.     STDMETHOD_(void, put_DriverName)(THIS_ ITAnyString FAR* n) PURE;
  1728.     STDMETHOD_(void, put_DriverNameDispatch)(THIS_ BSTR n) PURE;
  1729.     STDMETHOD_(VARIANT_BOOL, get_KeepConnection)(THIS) PURE;
  1730.     STDMETHOD_(void, put_KeepConnection)(THIS_ VARIANT_BOOL k) PURE;
  1731.     STDMETHOD_(VARIANT_BOOL, get_LoginPrompt)(THIS) PURE;
  1732.     STDMETHOD_(void, put_LoginPrompt)(THIS_ VARIANT_BOOL l) PURE;
  1733.     STDMETHOD_(ITStrings FAR*, get_Params)(THIS) PURE;
  1734.     STDMETHOD_(DTStrings FAR*, get_ParamsDispatch)(THIS) PURE;
  1735.     STDMETHOD_(void, put_Params)(THIS_ ITStrings FAR* strings) PURE;
  1736.     STDMETHOD_(void, put_ParamsDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1737.     STDMETHOD_(TTransIsolation, get_TransIsolation)(THIS) PURE;
  1738.     STDMETHOD_(void, put_TransIsolation)(THIS_ TTransIsolation t) PURE;
  1739.     STDMETHOD_(void, AttachOnLogin)(THIS_ NLoginEvent Callback, long Data) PURE;
  1740.     STDMETHOD_(void, DetachOnLogin)(THIS_ NLoginEvent Callback, long Data) PURE;
  1741. };
  1742.  
  1743. DEFINE_GUID(DIID_DTDatabase,0x2647E072,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1744.  
  1745. /* Definition of dispatch interface: DTDatabase */
  1746. DECLARE_INTERFACE_(DTDatabase, IDispatch)
  1747. {
  1748. #ifndef NO_BASEINTERFACE_FUNCS
  1749.  
  1750.     /* IUnknown methods */
  1751.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1752.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1753.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1754.  
  1755.     /* IDispatch methods */
  1756.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1757.  
  1758.     STDMETHOD(GetTypeInfo)(
  1759.       THIS_
  1760.       UINT itinfo,
  1761.       LCID lcid,
  1762.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1763.  
  1764.     STDMETHOD(GetIDsOfNames)(
  1765.       THIS_
  1766.       REFIID riid,
  1767.       OLECHAR FAR* FAR* rgszNames,
  1768.       UINT cNames,
  1769.       LCID lcid,
  1770.       DISPID FAR* rgdispid) PURE;
  1771.  
  1772.     STDMETHOD(Invoke)(
  1773.       THIS_
  1774.       DISPID dispidMember,
  1775.       REFIID riid,
  1776.       LCID lcid,
  1777.       WORD wFlags,
  1778.       DISPPARAMS FAR* pdispparams,
  1779.       VARIANT FAR* pvarResult,
  1780.       EXCEPINFO FAR* pexcepinfo,
  1781.       UINT FAR* puArgErr) PURE;
  1782. #endif
  1783.  
  1784. /* Capable of dispatching all the methods of interface ITDatabase */
  1785. };
  1786.  
  1787. DEFINE_GUID(CLSID_TDatabase,0x2647E073,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1788.  
  1789.  
  1790. DEFINE_GUID(IID_ITBatchMove,0x2647E081,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1791.  
  1792. /* Definition of interface: ITBatchMove */
  1793. DECLARE_INTERFACE_(ITBatchMove, ITBDTComponent)
  1794. {
  1795. #ifndef NO_BASEINTERFACE_FUNCS
  1796.  
  1797.     /* IUnknown methods */
  1798.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1799.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1800.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1801.  
  1802.     /* ITBDTObject methods */
  1803.     STDMETHOD_(void, Detach)(THIS) PURE;
  1804.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  1805.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  1806.  
  1807.     /* ITBDTComponent methods */
  1808.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  1809.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  1810.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  1811.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  1812. #endif
  1813.  
  1814.     /* ITBatchMove methods */
  1815.     STDMETHOD_(void, Execute)(THIS) PURE;
  1816.     STDMETHOD_(long, get_ChangedCount)(THIS) PURE;
  1817.     STDMETHOD_(long, get_KeyViolCount)(THIS) PURE;
  1818.     STDMETHOD_(long, get_MovedCount)(THIS) PURE;
  1819.     STDMETHOD_(long, get_ProblemCount)(THIS) PURE;
  1820.     STDMETHOD_(VARIANT_BOOL, get_AbortOnKeyViol)(THIS) PURE;
  1821.     STDMETHOD_(void, put_AbortOnKeyViol)(THIS_ VARIANT_BOOL a) PURE;
  1822.     STDMETHOD_(VARIANT_BOOL, get_AbortOnProblem)(THIS) PURE;
  1823.     STDMETHOD_(void, put_AbortOnProblem)(THIS_ VARIANT_BOOL a) PURE;
  1824.     STDMETHOD_(ITAnyString FAR*, get_ChangedTableName)(THIS) PURE;
  1825.     STDMETHOD_(BSTR, get_ChangedTableNameDispatch)(THIS) PURE;
  1826.     STDMETHOD_(void, put_ChangedTableName)(THIS_ ITAnyString FAR* n) PURE;
  1827.     STDMETHOD_(void, put_ChangedTableNameDispatch)(THIS_ BSTR n) PURE;
  1828.     STDMETHOD_(ITTable FAR*, get_Destination)(THIS) PURE;
  1829.     STDMETHOD_(DTTable FAR*, get_DestinationDispatch)(THIS) PURE;
  1830.     STDMETHOD_(void, put_Destination)(THIS_ ITTable FAR* table) PURE;
  1831.     STDMETHOD_(void, put_DestinationDispatch)(THIS_ DTTable FAR* table) PURE;
  1832.     STDMETHOD_(ITAnyString FAR*, get_KeyViolTableName)(THIS) PURE;
  1833.     STDMETHOD_(BSTR, get_KeyViolTableNameDispatch)(THIS) PURE;
  1834.     STDMETHOD_(void, put_KeyViolTableName)(THIS_ ITAnyString FAR* n) PURE;
  1835.     STDMETHOD_(void, put_KeyViolTableNameDispatch)(THIS_ BSTR n) PURE;
  1836.     STDMETHOD_(ITStrings FAR*, get_Mappings)(THIS) PURE;
  1837.     STDMETHOD_(DTStrings FAR*, get_MappingsDispatch)(THIS) PURE;
  1838.     STDMETHOD_(void, put_Mappings)(THIS_ ITStrings FAR* strings) PURE;
  1839.     STDMETHOD_(void, put_MappingsDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1840.     STDMETHOD_(TBatchMode, get_Mode)(THIS) PURE;
  1841.     STDMETHOD_(void, put_Mode)(THIS_ TBatchMode m) PURE;
  1842.     STDMETHOD_(ITAnyString FAR*, get_ProblemTableName)(THIS) PURE;
  1843.     STDMETHOD_(BSTR, get_ProblemTableNameDispatch)(THIS) PURE;
  1844.     STDMETHOD_(void, put_ProblemTableName)(THIS_ ITAnyString FAR* n) PURE;
  1845.     STDMETHOD_(void, put_ProblemTableNameDispatch)(THIS_ BSTR n) PURE;
  1846.     STDMETHOD_(long, get_RecordCount)(THIS) PURE;
  1847.     STDMETHOD_(void, put_RecordCount)(THIS_ long c) PURE;
  1848.     STDMETHOD_(ITDataSet FAR*, get_Source)(THIS) PURE;
  1849.     STDMETHOD_(DTDataSet FAR*, get_SourceDispatch)(THIS) PURE;
  1850.     STDMETHOD_(void, put_Source)(THIS_ ITDataSet FAR* dataset) PURE;
  1851.     STDMETHOD_(void, put_SourceDispatch)(THIS_ DTDataSet FAR* dataset) PURE;
  1852.     STDMETHOD_(VARIANT_BOOL, get_Transliterate)(THIS) PURE;
  1853.     STDMETHOD_(void, put_Transliterate)(THIS_ VARIANT_BOOL t) PURE;
  1854. };
  1855.  
  1856. DEFINE_GUID(DIID_DTBatchMove,0x2647E082,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1857.  
  1858. /* Definition of dispatch interface: DTBatchMove */
  1859. DECLARE_INTERFACE_(DTBatchMove, IDispatch)
  1860. {
  1861. #ifndef NO_BASEINTERFACE_FUNCS
  1862.  
  1863.     /* IUnknown methods */
  1864.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1865.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1866.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1867.  
  1868.     /* IDispatch methods */
  1869.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1870.  
  1871.     STDMETHOD(GetTypeInfo)(
  1872.       THIS_
  1873.       UINT itinfo,
  1874.       LCID lcid,
  1875.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1876.  
  1877.     STDMETHOD(GetIDsOfNames)(
  1878.       THIS_
  1879.       REFIID riid,
  1880.       OLECHAR FAR* FAR* rgszNames,
  1881.       UINT cNames,
  1882.       LCID lcid,
  1883.       DISPID FAR* rgdispid) PURE;
  1884.  
  1885.     STDMETHOD(Invoke)(
  1886.       THIS_
  1887.       DISPID dispidMember,
  1888.       REFIID riid,
  1889.       LCID lcid,
  1890.       WORD wFlags,
  1891.       DISPPARAMS FAR* pdispparams,
  1892.       VARIANT FAR* pvarResult,
  1893.       EXCEPINFO FAR* pexcepinfo,
  1894.       UINT FAR* puArgErr) PURE;
  1895. #endif
  1896.  
  1897. /* Capable of dispatching all the methods of interface ITBatchMove */
  1898. };
  1899.  
  1900. DEFINE_GUID(CLSID_TBatchMove,0x2647E083,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1901.  
  1902.  
  1903. DEFINE_GUID(IID_ITSession,0x2647E0A1,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1904.  
  1905. /* Definition of interface: ITSession */
  1906. DECLARE_INTERFACE_(ITSession, ITBDTComponent)
  1907. {
  1908. #ifndef NO_BASEINTERFACE_FUNCS
  1909.  
  1910.     /* IUnknown methods */
  1911.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1912.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1913.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1914.  
  1915.     /* ITBDTObject methods */
  1916.     STDMETHOD_(void, Detach)(THIS) PURE;
  1917.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  1918.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  1919.  
  1920.     /* ITBDTComponent methods */
  1921.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  1922.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  1923.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  1924.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  1925. #endif
  1926.  
  1927.     /* ITSession methods */
  1928.     STDMETHOD_(void, AddPassword)(THIS_ ITAnyString FAR* p) PURE;
  1929.     STDMETHOD_(void, AddPasswordDispatch)(THIS_ BSTR p) PURE;
  1930.     STDMETHOD_(void, CloseDatabase)(THIS_ ITDatabase FAR* d) PURE;
  1931.     STDMETHOD_(void, CloseDatabaseDispatch)(THIS_ DTDatabase FAR* d) PURE;
  1932.     STDMETHOD_(void, DropConnections)(THIS) PURE;
  1933.     STDMETHOD_(ITDatabase FAR*, FindDatabase)(THIS_ ITAnyString FAR* n) PURE;
  1934.     STDMETHOD_(DTDatabase FAR*, FindDatabaseDispatch)(THIS_ BSTR n) PURE;
  1935.     STDMETHOD_(void, GetAliasNames)(THIS_ ITStrings FAR* strings) PURE;
  1936.     STDMETHOD_(void, GetAliasNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1937.     STDMETHOD_(void, GetAliasParams)(THIS_ ITAnyString FAR* alias, ITStrings FAR* strings) PURE;
  1938.     STDMETHOD_(void, GetAliasParamsDispatch)(THIS_ BSTR alias, DTStrings FAR* strings) PURE;
  1939.     STDMETHOD_(void, GetDatabaseNames)(THIS_ ITStrings FAR* strings) PURE;
  1940.     STDMETHOD_(void, GetDatabaseNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1941.     STDMETHOD_(void, GetDriverNames)(THIS_ ITStrings FAR* strings) PURE;
  1942.     STDMETHOD_(void, GetDriverNamesDispatch)(THIS_ DTStrings FAR* strings) PURE;
  1943.     STDMETHOD_(void, GetDriverParams)(THIS_ ITAnyString FAR* n, ITStrings FAR* strings) PURE;
  1944.     STDMETHOD_(void, GetDriverParamsDispatch)(THIS_ BSTR n, DTStrings FAR* strings) PURE;
  1945.     STDMETHOD_(VARIANT_BOOL, GetPassword)(THIS) PURE;
  1946.     STDMETHOD_(void, GetTableNames)(THIS_ ITAnyString FAR* DatabaseName, ITAnyString FAR* Pattern, VARIANT_BOOL Extensions, VARIANT_BOOL SystemTables, ITStrings FAR* strings) PURE;
  1947.     STDMETHOD_(void, GetTableNamesDispatch)(THIS_ BSTR DatabaseName, BSTR Pattern, VARIANT_BOOL Extensions, VARIANT_BOOL SystemTables, DTStrings FAR* strings) PURE;
  1948.     STDMETHOD_(void, GetStoredProcNames)(THIS_ ITAnyString FAR* DatabaseName, ITStrings FAR* strings) PURE;
  1949.     STDMETHOD_(void, GetStoredProcNamesDispatch)(THIS_ BSTR DatabaseName, DTStrings FAR* strings) PURE;
  1950.     STDMETHOD_(ITDatabase FAR*, OpenDatabase)(THIS_ ITAnyString FAR* n) PURE;
  1951.     STDMETHOD_(DTDatabase FAR*, OpenDatabaseDispatch)(THIS_ BSTR n) PURE;
  1952.     STDMETHOD_(void, RemoveAllPasswords)(THIS) PURE;
  1953.     STDMETHOD_(void, RemovePassword)(THIS_ ITAnyString FAR* p) PURE;
  1954.     STDMETHOD_(void, RemovePasswordDispatch)(THIS_ BSTR p) PURE;
  1955.     STDMETHOD_(int, get_DatabaseCount)(THIS) PURE;
  1956.     STDMETHOD_(ITDatabase FAR*, get_Databases)(THIS_ int i) PURE;
  1957.     STDMETHOD_(DTDatabase FAR*, get_DatabasesDispatch)(THIS_ int i) PURE;
  1958.     STDMETHOD_(hDBISes, get_Handle)(THIS) PURE;
  1959.     STDMETHOD_(VARIANT_BOOL, get_KeepConnections)(THIS) PURE;
  1960.     STDMETHOD_(void, put_KeepConnections)(THIS_ VARIANT_BOOL k) PURE;
  1961.     STDMETHOD_(TLocale, get_Locale)(THIS) PURE;
  1962.     STDMETHOD_(ITAnyString FAR*, get_NetFileDir)(THIS) PURE;
  1963.     STDMETHOD_(BSTR, get_NetFileDirDispatch)(THIS) PURE;
  1964.     STDMETHOD_(void, put_NetFileDir)(THIS_ ITAnyString FAR* d) PURE;
  1965.     STDMETHOD_(void, put_NetFileDirDispatch)(THIS_ BSTR d) PURE;
  1966.     STDMETHOD_(ITAnyString FAR*, get_PrivateDir)(THIS) PURE;
  1967.     STDMETHOD_(BSTR, get_PrivateDirDispatch)(THIS) PURE;
  1968.     STDMETHOD_(void, put_PrivateDir)(THIS_ ITAnyString FAR* d) PURE;
  1969.     STDMETHOD_(void, put_PrivateDirDispatch)(THIS_ BSTR d) PURE;
  1970.     STDMETHOD_(void, AttachOnPassword)(THIS_ NPasswordEvent Callback, long Data) PURE;
  1971.     STDMETHOD_(void, DetachOnPassword)(THIS_ NPasswordEvent Callback, long Data) PURE;
  1972. };
  1973.  
  1974. DEFINE_GUID(DIID_DTSession,0x2647E0A2,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  1975.  
  1976. /* Definition of dispatch interface: DTSession */
  1977. DECLARE_INTERFACE_(DTSession, IDispatch)
  1978. {
  1979. #ifndef NO_BASEINTERFACE_FUNCS
  1980.  
  1981.     /* IUnknown methods */
  1982.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1983.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1984.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1985.  
  1986.     /* IDispatch methods */
  1987.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1988.  
  1989.     STDMETHOD(GetTypeInfo)(
  1990.       THIS_
  1991.       UINT itinfo,
  1992.       LCID lcid,
  1993.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1994.  
  1995.     STDMETHOD(GetIDsOfNames)(
  1996.       THIS_
  1997.       REFIID riid,
  1998.       OLECHAR FAR* FAR* rgszNames,
  1999.       UINT cNames,
  2000.       LCID lcid,
  2001.       DISPID FAR* rgdispid) PURE;
  2002.  
  2003.     STDMETHOD(Invoke)(
  2004.       THIS_
  2005.       DISPID dispidMember,
  2006.       REFIID riid,
  2007.       LCID lcid,
  2008.       WORD wFlags,
  2009.       DISPPARAMS FAR* pdispparams,
  2010.       VARIANT FAR* pvarResult,
  2011.       EXCEPINFO FAR* pexcepinfo,
  2012.       UINT FAR* puArgErr) PURE;
  2013. #endif
  2014.  
  2015. /* Capable of dispatching all the methods of interface ITSession */
  2016. };
  2017.  
  2018. DEFINE_GUID(CLSID_TSession,0x2647E0A3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2019.  
  2020.  
  2021. DEFINE_GUID(IID_ITField,0x2647E0B1,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2022.  
  2023. /* Definition of interface: ITField */
  2024. DECLARE_INTERFACE_(ITField, ITBDTComponent)
  2025. {
  2026. #ifndef NO_BASEINTERFACE_FUNCS
  2027.  
  2028.     /* IUnknown methods */
  2029.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2030.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2031.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2032.  
  2033.     /* ITBDTObject methods */
  2034.     STDMETHOD_(void, Detach)(THIS) PURE;
  2035.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  2036.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  2037.  
  2038.     /* ITBDTComponent methods */
  2039.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  2040.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  2041.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  2042.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  2043. #endif
  2044.  
  2045.     /* ITField methods */
  2046.     STDMETHOD_(void, AssignValue)(THIS_ VARIANT FAR* v) PURE;
  2047.     STDMETHOD_(void, Clear)(THIS) PURE;
  2048.     STDMETHOD_(VARIANT_BOOL, GetData)(THIS_ LPVOID buffer) PURE;
  2049.     STDMETHOD_(void, SetData)(THIS_ LPVOID buffer) PURE;
  2050.     STDMETHOD_(VARIANT_BOOL, IsValidChar)(THIS_ char c) PURE;
  2051.     STDMETHOD_(void, LoadFromFile)(THIS_ ITAnyString FAR* filename) PURE;
  2052.     STDMETHOD_(void, LoadFromFileDispatch)(THIS_ BSTR filename) PURE;
  2053.     STDMETHOD_(void, LoadFromStream)(THIS_ ITMemoryStream FAR* stream) PURE;
  2054.     STDMETHOD_(void, LoadFromStreamDispatch)(THIS_ DTMemoryStream FAR* stream) PURE;
  2055.     STDMETHOD_(void, SaveToFile)(THIS_ ITAnyString FAR* filename) PURE;
  2056.     STDMETHOD_(void, SaveToFileDispatch)(THIS_ BSTR filename) PURE;
  2057.     STDMETHOD_(void, SaveToStream)(THIS_ ITMemoryStream FAR* stream) PURE;
  2058.     STDMETHOD_(void, SaveToStreamDispatch)(THIS_ DTMemoryStream FAR* stream) PURE;
  2059.     STDMETHOD_(void, SaveToBitmap)(THIS_ HBITMAP FAR* hb, HPALETTE FAR* hp) PURE;
  2060.     STDMETHOD_(void, LoadFromBitmap)(THIS_ HBITMAP hb, HPALETTE hp) PURE;
  2061.     STDMETHOD_(VARIANT_BOOL, get_AsBoolean)(THIS) PURE;
  2062.     STDMETHOD_(void, put_AsBoolean)(THIS_ VARIANT_BOOL b) PURE;
  2063.     STDMETHOD_(DATE, get_AsDateTime)(THIS) PURE;
  2064.     STDMETHOD_(void, put_AsDateTime)(THIS_ DATE d) PURE;
  2065.     STDMETHOD_(double, get_AsFloat)(THIS) PURE;
  2066.     STDMETHOD_(void, put_AsFloat)(THIS_ double d) PURE;
  2067.     STDMETHOD_(long, get_AsInteger)(THIS) PURE;
  2068.     STDMETHOD_(void, put_AsInteger)(THIS_ long l) PURE;
  2069.     STDMETHOD_(ITAnyString FAR*, get_AsString)(THIS) PURE;
  2070.     STDMETHOD_(BSTR, get_AsStringDispatch)(THIS) PURE;
  2071.     STDMETHOD_(void, put_AsString)(THIS_ ITAnyString FAR* s) PURE;
  2072.     STDMETHOD_(void, put_AsStringDispatch)(THIS_ BSTR s) PURE;
  2073.     STDMETHOD_(VARIANT_BOOL, get_CanModify)(THIS) PURE;
  2074.     STDMETHOD_(ITDataSet FAR*, get_DataSet)(THIS) PURE;
  2075.     STDMETHOD_(DTDataSet FAR*, get_DataSetDispatch)(THIS) PURE;
  2076.     STDMETHOD_(void, put_DataSet)(THIS_ ITDataSet FAR* dataset) PURE;
  2077.     STDMETHOD_(void, put_DataSetDispatch)(THIS_ DTDataSet FAR* dataset) PURE;
  2078.     STDMETHOD_(int, get_DataSize)(THIS) PURE;
  2079.     STDMETHOD_(TFieldType, get_DataType)(THIS) PURE;
  2080.     STDMETHOD_(ITAnyString FAR*, get_DisplayText)(THIS) PURE;
  2081.     STDMETHOD_(BSTR, get_DisplayTextDispatch)(THIS) PURE;
  2082.     STDMETHOD_(ITAnyString FAR*, get_EditMask)(THIS) PURE;
  2083.     STDMETHOD_(BSTR, get_EditMaskDispatch)(THIS) PURE;
  2084.     STDMETHOD_(void, put_EditMask)(THIS_ ITAnyString FAR* m) PURE;
  2085.     STDMETHOD_(void, put_EditMaskDispatch)(THIS_ BSTR m) PURE;
  2086.     STDMETHOD_(int, get_FieldNo)(THIS) PURE;
  2087.     STDMETHOD_(VARIANT_BOOL, get_IsIndexField)(THIS) PURE;
  2088.     STDMETHOD_(VARIANT_BOOL, get_IsNull)(THIS) PURE;
  2089.     STDMETHOD_(WORD, get_Size)(THIS) PURE;
  2090.     STDMETHOD_(void, put_Size)(THIS_ WORD s) PURE;
  2091.     STDMETHOD_(ITAnyString FAR*, get_Text)(THIS) PURE;
  2092.     STDMETHOD_(BSTR, get_TextDispatch)(THIS) PURE;
  2093.     STDMETHOD_(void, put_Text)(THIS_ ITAnyString FAR* t) PURE;
  2094.     STDMETHOD_(void, put_TextDispatch)(THIS_ BSTR t) PURE;
  2095.     STDMETHOD_(VARIANT_BOOL, get_Calculated)(THIS) PURE;
  2096.     STDMETHOD_(void, put_Calculated)(THIS_ VARIANT_BOOL c) PURE;
  2097.     STDMETHOD_(ITAnyString FAR*, get_FieldName)(THIS) PURE;
  2098.     STDMETHOD_(BSTR, get_FieldNameDispatch)(THIS) PURE;
  2099.     STDMETHOD_(void, put_FieldName)(THIS_ ITAnyString FAR* n) PURE;
  2100.     STDMETHOD_(void, put_FieldNameDispatch)(THIS_ BSTR n) PURE;
  2101.     STDMETHOD_(int, get_Index)(THIS) PURE;
  2102.     STDMETHOD_(void, put_Index)(THIS_ int i) PURE;
  2103.     STDMETHOD_(VARIANT_BOOL, get_ReadOnly)(THIS) PURE;
  2104.     STDMETHOD_(void, put_ReadOnly)(THIS_ VARIANT_BOOL r) PURE;
  2105.     STDMETHOD_(VARIANT_BOOL, get_Required)(THIS) PURE;
  2106.     STDMETHOD_(void, put_Required)(THIS_ VARIANT_BOOL r) PURE;
  2107.     STDMETHOD_(VARIANT_BOOL, get_Visible)(THIS) PURE;
  2108.     STDMETHOD_(void, put_Visible)(THIS_ VARIANT_BOOL v) PURE;
  2109.     STDMETHOD_(VARIANT_BOOL, get_Transliterate)(THIS) PURE;
  2110.     STDMETHOD_(void, put_Transliterate)(THIS_ VARIANT_BOOL t) PURE;
  2111.     STDMETHOD_(ITAnyString FAR*, get_DisplayFormat)(THIS) PURE;
  2112.     STDMETHOD_(BSTR, get_DisplayFormatDispatch)(THIS) PURE;
  2113.     STDMETHOD_(void, put_DisplayFormat)(THIS_ ITAnyString FAR* f) PURE;
  2114.     STDMETHOD_(void, put_DisplayFormatDispatch)(THIS_ BSTR f) PURE;
  2115.     STDMETHOD_(ITAnyString FAR*, get_EditFormat)(THIS) PURE;
  2116.     STDMETHOD_(BSTR, get_EditFormatDispatch)(THIS) PURE;
  2117.     STDMETHOD_(void, put_EditFormat)(THIS_ ITAnyString FAR* f) PURE;
  2118.     STDMETHOD_(void, put_EditFormatDispatch)(THIS_ BSTR f) PURE;
  2119.     STDMETHOD_(long, get_MaxValueAsInteger)(THIS) PURE;
  2120.     STDMETHOD_(void, put_MaxValueAsInteger)(THIS_ long l) PURE;
  2121.     STDMETHOD_(long, get_MinValueAsInteger)(THIS) PURE;
  2122.     STDMETHOD_(void, put_MinValueAsInteger)(THIS_ long l) PURE;
  2123.     STDMETHOD_(VARIANT_BOOL, get_Currency)(THIS) PURE;
  2124.     STDMETHOD_(void, put_Currency)(THIS_ VARIANT_BOOL c) PURE;
  2125.     STDMETHOD_(double, get_MaxValueAsFloat)(THIS) PURE;
  2126.     STDMETHOD_(void, put_MaxValueAsFloat)(THIS_ double d) PURE;
  2127.     STDMETHOD_(double, get_MinValueAsFloat)(THIS) PURE;
  2128.     STDMETHOD_(void, put_MinValueAsFloat)(THIS_ double d) PURE;
  2129.     STDMETHOD_(int, get_Precision)(THIS) PURE;
  2130.     STDMETHOD_(void, put_Precision)(THIS_ int p) PURE;
  2131.     STDMETHOD_(ITAnyString FAR*, get_DisplayValues)(THIS) PURE;
  2132.     STDMETHOD_(BSTR, get_DisplayValuesDispatch)(THIS) PURE;
  2133.     STDMETHOD_(void, put_DisplayValues)(THIS_ ITAnyString FAR* d) PURE;
  2134.     STDMETHOD_(void, put_DisplayValuesDispatch)(THIS_ BSTR d) PURE;
  2135.     STDMETHOD_(void, AttachOnChange)(THIS_ NFieldNotifyEvent Callback, long Data) PURE;
  2136.     STDMETHOD_(void, DetachOnChange)(THIS_ NFieldNotifyEvent Callback, long Data) PURE;
  2137.     STDMETHOD_(void, AttachOnGetText)(THIS_ NFieldGetTextEvent Callback, long Data) PURE;
  2138.     STDMETHOD_(void, DetachOnGetText)(THIS_ NFieldGetTextEvent Callback, long Data) PURE;
  2139.     STDMETHOD_(void, AttachOnSetText)(THIS_ NFieldSetTextEvent Callback, long Data) PURE;
  2140.     STDMETHOD_(void, DetachOnSetText)(THIS_ NFieldSetTextEvent Callback, long Data) PURE;
  2141.     STDMETHOD_(void, AttachOnValidate)(THIS_ NFieldNotifyEvent Callback, long Data) PURE;
  2142.     STDMETHOD_(void, DetachOnValidate)(THIS_ NFieldNotifyEvent Callback, long Data) PURE;
  2143. };
  2144.  
  2145. DEFINE_GUID(DIID_DTField,0x2647E0B2,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2146.  
  2147. /* Definition of dispatch interface: DTField */
  2148. DECLARE_INTERFACE_(DTField, IDispatch)
  2149. {
  2150. #ifndef NO_BASEINTERFACE_FUNCS
  2151.  
  2152.     /* IUnknown methods */
  2153.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2154.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2155.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2156.  
  2157.     /* IDispatch methods */
  2158.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2159.  
  2160.     STDMETHOD(GetTypeInfo)(
  2161.       THIS_
  2162.       UINT itinfo,
  2163.       LCID lcid,
  2164.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2165.  
  2166.     STDMETHOD(GetIDsOfNames)(
  2167.       THIS_
  2168.       REFIID riid,
  2169.       OLECHAR FAR* FAR* rgszNames,
  2170.       UINT cNames,
  2171.       LCID lcid,
  2172.       DISPID FAR* rgdispid) PURE;
  2173.  
  2174.     STDMETHOD(Invoke)(
  2175.       THIS_
  2176.       DISPID dispidMember,
  2177.       REFIID riid,
  2178.       LCID lcid,
  2179.       WORD wFlags,
  2180.       DISPPARAMS FAR* pdispparams,
  2181.       VARIANT FAR* pvarResult,
  2182.       EXCEPINFO FAR* pexcepinfo,
  2183.       UINT FAR* puArgErr) PURE;
  2184. #endif
  2185.  
  2186. /* Capable of dispatching all the methods of interface ITField */
  2187. };
  2188.  
  2189. DEFINE_GUID(CLSID_TField,0x2647E0B3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2190.  
  2191.  
  2192. DEFINE_GUID(IID_ITFieldDef,0x2647E0D1,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2193.  
  2194. /* Definition of interface: ITFieldDef */
  2195. DECLARE_INTERFACE_(ITFieldDef, IUnknown)
  2196. {
  2197. #ifndef NO_BASEINTERFACE_FUNCS
  2198.  
  2199.     /* IUnknown methods */
  2200.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2201.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2202.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2203. #endif
  2204.  
  2205.     /* ITFieldDef methods */
  2206.     STDMETHOD_(void, Detach)(THIS) PURE;
  2207.     STDMETHOD_(ITField FAR*, CreateField)(THIS_ ITBDTComponent FAR* Owner) PURE;
  2208.     STDMETHOD_(DTField FAR*, CreateFieldDispatch)(THIS_ DTBDTComponent FAR* Owner) PURE;
  2209.     STDMETHOD_(TFieldType, get_DataType)(THIS) PURE;
  2210.     STDMETHOD_(int, get_FieldNo)(THIS) PURE;
  2211.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  2212.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  2213.     STDMETHOD_(VARIANT_BOOL, get_Required)(THIS) PURE;
  2214.     STDMETHOD_(WORD, get_Size)(THIS) PURE;
  2215. };
  2216.  
  2217. DEFINE_GUID(DIID_DTFieldDef,0x2647E0D2,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2218.  
  2219. /* Definition of dispatch interface: DTFieldDef */
  2220. DECLARE_INTERFACE_(DTFieldDef, IDispatch)
  2221. {
  2222. #ifndef NO_BASEINTERFACE_FUNCS
  2223.  
  2224.     /* IUnknown methods */
  2225.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2226.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2227.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2228.  
  2229.     /* IDispatch methods */
  2230.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2231.  
  2232.     STDMETHOD(GetTypeInfo)(
  2233.       THIS_
  2234.       UINT itinfo,
  2235.       LCID lcid,
  2236.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2237.  
  2238.     STDMETHOD(GetIDsOfNames)(
  2239.       THIS_
  2240.       REFIID riid,
  2241.       OLECHAR FAR* FAR* rgszNames,
  2242.       UINT cNames,
  2243.       LCID lcid,
  2244.       DISPID FAR* rgdispid) PURE;
  2245.  
  2246.     STDMETHOD(Invoke)(
  2247.       THIS_
  2248.       DISPID dispidMember,
  2249.       REFIID riid,
  2250.       LCID lcid,
  2251.       WORD wFlags,
  2252.       DISPPARAMS FAR* pdispparams,
  2253.       VARIANT FAR* pvarResult,
  2254.       EXCEPINFO FAR* pexcepinfo,
  2255.       UINT FAR* puArgErr) PURE;
  2256. #endif
  2257.  
  2258. /* Capable of dispatching all the methods of interface ITFieldDef */
  2259. };
  2260.  
  2261. DEFINE_GUID(CLSID_TFieldDef,0x2647E0D3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2262.  
  2263.  
  2264. DEFINE_GUID(IID_ITFieldDefs,0x2647E0E1,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2265.  
  2266. /* Definition of interface: ITFieldDefs */
  2267. DECLARE_INTERFACE_(ITFieldDefs, IUnknown)
  2268. {
  2269. #ifndef NO_BASEINTERFACE_FUNCS
  2270.  
  2271.     /* IUnknown methods */
  2272.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2273.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2274.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2275. #endif
  2276.  
  2277.     /* ITFieldDefs methods */
  2278.     STDMETHOD_(void, Detach)(THIS) PURE;
  2279.     STDMETHOD_(void, Add)(THIS_ ITAnyString FAR* Name, TFieldType DataType, WORD Size, VARIANT_BOOL Required) PURE;
  2280.     STDMETHOD_(void, AddDispatch)(THIS_ BSTR Name, TFieldType DataType, WORD Size, VARIANT_BOOL Required) PURE;
  2281.     STDMETHOD_(void, AddFieldDesc)(THIS_ pFLDDesc desc, VARIANT_BOOL Required, WORD fieldNo) PURE;
  2282.     STDMETHOD_(void, Assign)(THIS_ ITFieldDefs FAR* fieldDefs) PURE;
  2283.     STDMETHOD_(void, AssignDispatch)(THIS_ DTFieldDefs FAR* fieldDefs) PURE;
  2284.     STDMETHOD_(void, Clear)(THIS) PURE;
  2285.     STDMETHOD_(ITFieldDef FAR*, Find)(THIS_ ITAnyString FAR* n) PURE;
  2286.     STDMETHOD_(DTFieldDef FAR*, FindDispatch)(THIS_ BSTR n) PURE;
  2287.     STDMETHOD_(int, IndexOf)(THIS_ ITAnyString FAR* n) PURE;
  2288.     STDMETHOD_(int, IndexOfDispatch)(THIS_ BSTR n) PURE;
  2289.     STDMETHOD_(void, Update)(THIS) PURE;
  2290.     STDMETHOD_(int, get_Count)(THIS) PURE;
  2291.     STDMETHOD_(ITFieldDef FAR*, get_Items)(THIS_ int i) PURE;
  2292.     STDMETHOD_(DTFieldDef FAR*, get_ItemsDispatch)(THIS_ int i) PURE;
  2293. };
  2294.  
  2295. DEFINE_GUID(DIID_DTFieldDefs,0x2647E0E2,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2296.  
  2297. /* Definition of dispatch interface: DTFieldDefs */
  2298. DECLARE_INTERFACE_(DTFieldDefs, IDispatch)
  2299. {
  2300. #ifndef NO_BASEINTERFACE_FUNCS
  2301.  
  2302.     /* IUnknown methods */
  2303.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2304.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2305.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2306.  
  2307.     /* IDispatch methods */
  2308.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2309.  
  2310.     STDMETHOD(GetTypeInfo)(
  2311.       THIS_
  2312.       UINT itinfo,
  2313.       LCID lcid,
  2314.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2315.  
  2316.     STDMETHOD(GetIDsOfNames)(
  2317.       THIS_
  2318.       REFIID riid,
  2319.       OLECHAR FAR* FAR* rgszNames,
  2320.       UINT cNames,
  2321.       LCID lcid,
  2322.       DISPID FAR* rgdispid) PURE;
  2323.  
  2324.     STDMETHOD(Invoke)(
  2325.       THIS_
  2326.       DISPID dispidMember,
  2327.       REFIID riid,
  2328.       LCID lcid,
  2329.       WORD wFlags,
  2330.       DISPPARAMS FAR* pdispparams,
  2331.       VARIANT FAR* pvarResult,
  2332.       EXCEPINFO FAR* pexcepinfo,
  2333.       UINT FAR* puArgErr) PURE;
  2334. #endif
  2335.  
  2336. /* Capable of dispatching all the methods of interface ITFieldDefs */
  2337. };
  2338.  
  2339. DEFINE_GUID(CLSID_TFieldDefs,0x2647E0E3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2340.  
  2341.  
  2342. DEFINE_GUID(IID_ITIndexDef,0x2647E0F1,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2343.  
  2344. /* Definition of interface: ITIndexDef */
  2345. DECLARE_INTERFACE_(ITIndexDef, IUnknown)
  2346. {
  2347. #ifndef NO_BASEINTERFACE_FUNCS
  2348.  
  2349.     /* IUnknown methods */
  2350.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2351.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2352.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2353. #endif
  2354.  
  2355.     /* ITIndexDef methods */
  2356.     STDMETHOD_(void, Detach)(THIS) PURE;
  2357.     STDMETHOD_(ITAnyString FAR*, get_Expression)(THIS) PURE;
  2358.     STDMETHOD_(BSTR, get_ExpressionDispatch)(THIS) PURE;
  2359.     STDMETHOD_(ITAnyString FAR*, get_Fields)(THIS) PURE;
  2360.     STDMETHOD_(BSTR, get_FieldsDispatch)(THIS) PURE;
  2361.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  2362.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  2363.     STDMETHOD_(TIndexOptions, get_Options)(THIS) PURE;
  2364. };
  2365.  
  2366. DEFINE_GUID(DIID_DTIndexDef,0x2647E0F2,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2367.  
  2368. /* Definition of dispatch interface: DTIndexDef */
  2369. DECLARE_INTERFACE_(DTIndexDef, IDispatch)
  2370. {
  2371. #ifndef NO_BASEINTERFACE_FUNCS
  2372.  
  2373.     /* IUnknown methods */
  2374.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2375.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2376.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2377.  
  2378.     /* IDispatch methods */
  2379.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2380.  
  2381.     STDMETHOD(GetTypeInfo)(
  2382.       THIS_
  2383.       UINT itinfo,
  2384.       LCID lcid,
  2385.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2386.  
  2387.     STDMETHOD(GetIDsOfNames)(
  2388.       THIS_
  2389.       REFIID riid,
  2390.       OLECHAR FAR* FAR* rgszNames,
  2391.       UINT cNames,
  2392.       LCID lcid,
  2393.       DISPID FAR* rgdispid) PURE;
  2394.  
  2395.     STDMETHOD(Invoke)(
  2396.       THIS_
  2397.       DISPID dispidMember,
  2398.       REFIID riid,
  2399.       LCID lcid,
  2400.       WORD wFlags,
  2401.       DISPPARAMS FAR* pdispparams,
  2402.       VARIANT FAR* pvarResult,
  2403.       EXCEPINFO FAR* pexcepinfo,
  2404.       UINT FAR* puArgErr) PURE;
  2405. #endif
  2406.  
  2407. /* Capable of dispatching all the methods of interface ITIndexDef */
  2408. };
  2409.  
  2410. DEFINE_GUID(CLSID_TIndexDef,0x2647E0F3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2411.  
  2412.  
  2413. DEFINE_GUID(IID_ITIndexDefs,0x2647E101,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2414.  
  2415. /* Definition of interface: ITIndexDefs */
  2416. DECLARE_INTERFACE_(ITIndexDefs, IUnknown)
  2417. {
  2418. #ifndef NO_BASEINTERFACE_FUNCS
  2419.  
  2420.     /* IUnknown methods */
  2421.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2422.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2423.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2424. #endif
  2425.  
  2426.     /* ITIndexDefs methods */
  2427.     STDMETHOD_(void, Detach)(THIS) PURE;
  2428.     STDMETHOD_(void, Add)(THIS_ ITAnyString FAR* name, ITAnyString FAR* fields, TIndexOptions options) PURE;
  2429.     STDMETHOD_(void, AddDispatch)(THIS_ BSTR name, BSTR fields, TIndexOptions options) PURE;
  2430.     STDMETHOD_(void, Assign)(THIS_ ITIndexDefs FAR* indexDefs) PURE;
  2431.     STDMETHOD_(void, AssignDispatch)(THIS_ DTIndexDefs FAR* indexDefs) PURE;
  2432.     STDMETHOD_(void, Clear)(THIS) PURE;
  2433.     STDMETHOD_(ITIndexDef FAR*, FindIndexForFields)(THIS_ ITAnyString FAR* fields) PURE;
  2434.     STDMETHOD_(DTIndexDef FAR*, FindIndexForFieldsDispatch)(THIS_ BSTR fields) PURE;
  2435.     STDMETHOD_(int, IndexOf)(THIS_ ITAnyString FAR* n) PURE;
  2436.     STDMETHOD_(int, IndexOfDispatch)(THIS_ BSTR n) PURE;
  2437.     STDMETHOD_(void, Update)(THIS) PURE;
  2438.     STDMETHOD_(int, get_Count)(THIS) PURE;
  2439.     STDMETHOD_(ITIndexDef FAR*, get_Items)(THIS_ int i) PURE;
  2440.     STDMETHOD_(DTIndexDef FAR*, get_ItemsDispatch)(THIS_ int i) PURE;
  2441. };
  2442.  
  2443. DEFINE_GUID(DIID_DTIndexDefs,0x2647E102,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2444.  
  2445. /* Definition of dispatch interface: DTIndexDefs */
  2446. DECLARE_INTERFACE_(DTIndexDefs, IDispatch)
  2447. {
  2448. #ifndef NO_BASEINTERFACE_FUNCS
  2449.  
  2450.     /* IUnknown methods */
  2451.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2452.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2453.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2454.  
  2455.     /* IDispatch methods */
  2456.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2457.  
  2458.     STDMETHOD(GetTypeInfo)(
  2459.       THIS_
  2460.       UINT itinfo,
  2461.       LCID lcid,
  2462.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2463.  
  2464.     STDMETHOD(GetIDsOfNames)(
  2465.       THIS_
  2466.       REFIID riid,
  2467.       OLECHAR FAR* FAR* rgszNames,
  2468.       UINT cNames,
  2469.       LCID lcid,
  2470.       DISPID FAR* rgdispid) PURE;
  2471.  
  2472.     STDMETHOD(Invoke)(
  2473.       THIS_
  2474.       DISPID dispidMember,
  2475.       REFIID riid,
  2476.       LCID lcid,
  2477.       WORD wFlags,
  2478.       DISPPARAMS FAR* pdispparams,
  2479.       VARIANT FAR* pvarResult,
  2480.       EXCEPINFO FAR* pexcepinfo,
  2481.       UINT FAR* puArgErr) PURE;
  2482. #endif
  2483.  
  2484. /* Capable of dispatching all the methods of interface ITIndexDefs */
  2485. };
  2486.  
  2487. DEFINE_GUID(CLSID_TIndexDefs,0x2647E103,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2488.  
  2489.  
  2490. DEFINE_GUID(IID_ITParam,0x2647E111,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2491.  
  2492. /* Definition of interface: ITParam */
  2493. DECLARE_INTERFACE_(ITParam, IUnknown)
  2494. {
  2495. #ifndef NO_BASEINTERFACE_FUNCS
  2496.  
  2497.     /* IUnknown methods */
  2498.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2499.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2500.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2501. #endif
  2502.  
  2503.     /* ITParam methods */
  2504.     STDMETHOD_(void, Detach)(THIS) PURE;
  2505.     STDMETHOD_(void, Assign)(THIS_ ITParam FAR* param) PURE;
  2506.     STDMETHOD_(void, AssignDispatch)(THIS_ DTParam FAR* param) PURE;
  2507.     STDMETHOD_(void, AssignField)(THIS_ ITField FAR* field) PURE;
  2508.     STDMETHOD_(void, AssignFieldDispatch)(THIS_ DTField FAR* field) PURE;
  2509.     STDMETHOD_(void, GetData)(THIS_ LPVOID buffer) PURE;
  2510.     STDMETHOD_(WORD, GetDataSize)(THIS) PURE;
  2511.     STDMETHOD_(void, SetData)(THIS_ LPVOID buffer) PURE;
  2512.     STDMETHOD_(void, Clear)(THIS) PURE;
  2513.     STDMETHOD_(ITAnyString FAR*, get_Name)(THIS) PURE;
  2514.     STDMETHOD_(BSTR, get_NameDispatch)(THIS) PURE;
  2515.     STDMETHOD_(void, put_Name)(THIS_ ITAnyString FAR* n) PURE;
  2516.     STDMETHOD_(void, put_NameDispatch)(THIS_ BSTR n) PURE;
  2517.     STDMETHOD_(TFieldType, get_DataType)(THIS) PURE;
  2518.     STDMETHOD_(void, put_DataType)(THIS_ TFieldType t) PURE;
  2519.     STDMETHOD_(VARIANT_BOOL, get_AsBoolean)(THIS) PURE;
  2520.     STDMETHOD_(void, put_AsBoolean)(THIS_ VARIANT_BOOL b) PURE;
  2521.     STDMETHOD_(double, get_AsFloat)(THIS) PURE;
  2522.     STDMETHOD_(void, put_AsFloat)(THIS_ double d) PURE;
  2523.     STDMETHOD_(long, get_AsInteger)(THIS) PURE;
  2524.     STDMETHOD_(void, put_AsInteger)(THIS_ long l) PURE;
  2525.     STDMETHOD_(ITAnyString FAR*, get_AsString)(THIS) PURE;
  2526.     STDMETHOD_(BSTR, get_AsStringDispatch)(THIS) PURE;
  2527.     STDMETHOD_(void, put_AsString)(THIS_ ITAnyString FAR* s) PURE;
  2528.     STDMETHOD_(void, put_AsStringDispatch)(THIS_ BSTR s) PURE;
  2529.     STDMETHOD_(DATE, get_AsDate)(THIS) PURE;
  2530.     STDMETHOD_(void, put_AsDate)(THIS_ DATE d) PURE;
  2531.     STDMETHOD_(DATE, get_AsTime)(THIS) PURE;
  2532.     STDMETHOD_(void, put_AsTime)(THIS_ DATE d) PURE;
  2533.     STDMETHOD_(DATE, get_AsDateTime)(THIS) PURE;
  2534.     STDMETHOD_(void, put_AsDateTime)(THIS_ DATE d) PURE;
  2535.     STDMETHOD_(long, get_AsSmallInt)(THIS) PURE;
  2536.     STDMETHOD_(void, put_AsSmallInt)(THIS_ long l) PURE;
  2537.     STDMETHOD_(long, get_AsWord)(THIS) PURE;
  2538.     STDMETHOD_(void, put_AsWord)(THIS_ long l) PURE;
  2539.     STDMETHOD_(double, get_AsCurrency)(THIS) PURE;
  2540.     STDMETHOD_(void, put_AsCurrency)(THIS_ double d) PURE;
  2541.     STDMETHOD_(double, get_AsBCD)(THIS) PURE;
  2542.     STDMETHOD_(void, put_AsBCD)(THIS_ double d) PURE;
  2543.     STDMETHOD_(VARIANT_BOOL, get_IsNull)(THIS) PURE;
  2544.     STDMETHOD_(TParamType, get_ParamType)(THIS) PURE;
  2545.     STDMETHOD_(void, put_ParamType)(THIS_ TParamType t) PURE;
  2546.     STDMETHOD_(VARIANT_BOOL, get_Bound)(THIS) PURE;
  2547.     STDMETHOD_(void, put_Bound)(THIS_ VARIANT_BOOL b) PURE;
  2548.     STDMETHOD_(ITAnyString FAR*, get_Text)(THIS) PURE;
  2549.     STDMETHOD_(BSTR, get_TextDispatch)(THIS) PURE;
  2550.     STDMETHOD_(void, put_Text)(THIS_ ITAnyString FAR* t) PURE;
  2551.     STDMETHOD_(void, put_TextDispatch)(THIS_ BSTR t) PURE;
  2552. };
  2553.  
  2554. DEFINE_GUID(DIID_DTParam,0x2647E112,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2555.  
  2556. /* Definition of dispatch interface: DTParam */
  2557. DECLARE_INTERFACE_(DTParam, IDispatch)
  2558. {
  2559. #ifndef NO_BASEINTERFACE_FUNCS
  2560.  
  2561.     /* IUnknown methods */
  2562.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2563.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2564.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2565.  
  2566.     /* IDispatch methods */
  2567.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2568.  
  2569.     STDMETHOD(GetTypeInfo)(
  2570.       THIS_
  2571.       UINT itinfo,
  2572.       LCID lcid,
  2573.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2574.  
  2575.     STDMETHOD(GetIDsOfNames)(
  2576.       THIS_
  2577.       REFIID riid,
  2578.       OLECHAR FAR* FAR* rgszNames,
  2579.       UINT cNames,
  2580.       LCID lcid,
  2581.       DISPID FAR* rgdispid) PURE;
  2582.  
  2583.     STDMETHOD(Invoke)(
  2584.       THIS_
  2585.       DISPID dispidMember,
  2586.       REFIID riid,
  2587.       LCID lcid,
  2588.       WORD wFlags,
  2589.       DISPPARAMS FAR* pdispparams,
  2590.       VARIANT FAR* pvarResult,
  2591.       EXCEPINFO FAR* pexcepinfo,
  2592.       UINT FAR* puArgErr) PURE;
  2593. #endif
  2594.  
  2595. /* Capable of dispatching all the methods of interface ITParam */
  2596. };
  2597.  
  2598. DEFINE_GUID(CLSID_TParam,0x2647E113,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2599.  
  2600.  
  2601. DEFINE_GUID(IID_ITParams,0x2647E121,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2602.  
  2603. /* Definition of interface: ITParams */
  2604. DECLARE_INTERFACE_(ITParams, ITBDTObject)
  2605. {
  2606. #ifndef NO_BASEINTERFACE_FUNCS
  2607.  
  2608.     /* IUnknown methods */
  2609.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2610.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2611.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2612.  
  2613.     /* ITBDTObject methods */
  2614.     STDMETHOD_(void, Detach)(THIS) PURE;
  2615.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  2616.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  2617. #endif
  2618.  
  2619.     /* ITParams methods */
  2620.     STDMETHOD_(void, AssignValues)(THIS_ ITParams FAR* params) PURE;
  2621.     STDMETHOD_(void, AssignValuesDispatch)(THIS_ DTParams FAR* params) PURE;
  2622.     STDMETHOD_(void, AddParam)(THIS_ ITParam FAR* param) PURE;
  2623.     STDMETHOD_(void, AddParamDispatch)(THIS_ DTParam FAR* param) PURE;
  2624.     STDMETHOD_(void, RemoveParam)(THIS_ ITParam FAR* param) PURE;
  2625.     STDMETHOD_(void, RemoveParamDispatch)(THIS_ DTParam FAR* param) PURE;
  2626.     STDMETHOD_(ITParam FAR*, CreateParam)(THIS_ TFieldType fldType, ITAnyString FAR* name, TParamType paramType) PURE;
  2627.     STDMETHOD_(DTParam FAR*, CreateParamDispatch)(THIS_ TFieldType fldType, BSTR name, TParamType paramType) PURE;
  2628.     STDMETHOD_(int, get_Count)(THIS) PURE;
  2629.     STDMETHOD_(void, Clear)(THIS) PURE;
  2630.     STDMETHOD_(ITParam FAR*, ParamByName)(THIS_ ITAnyString FAR* value) PURE;
  2631.     STDMETHOD_(DTParam FAR*, ParamByNameDispatch)(THIS_ BSTR value) PURE;
  2632.     STDMETHOD_(ITParam FAR*, get_Items)(THIS_ WORD i) PURE;
  2633.     STDMETHOD_(DTParam FAR*, get_ItemsDispatch)(THIS_ WORD i) PURE;
  2634. };
  2635.  
  2636. DEFINE_GUID(DIID_DTParams,0x2647E122,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2637.  
  2638. /* Definition of dispatch interface: DTParams */
  2639. DECLARE_INTERFACE_(DTParams, IDispatch)
  2640. {
  2641. #ifndef NO_BASEINTERFACE_FUNCS
  2642.  
  2643.     /* IUnknown methods */
  2644.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2645.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2646.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2647.  
  2648.     /* IDispatch methods */
  2649.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2650.  
  2651.     STDMETHOD(GetTypeInfo)(
  2652.       THIS_
  2653.       UINT itinfo,
  2654.       LCID lcid,
  2655.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2656.  
  2657.     STDMETHOD(GetIDsOfNames)(
  2658.       THIS_
  2659.       REFIID riid,
  2660.       OLECHAR FAR* FAR* rgszNames,
  2661.       UINT cNames,
  2662.       LCID lcid,
  2663.       DISPID FAR* rgdispid) PURE;
  2664.  
  2665.     STDMETHOD(Invoke)(
  2666.       THIS_
  2667.       DISPID dispidMember,
  2668.       REFIID riid,
  2669.       LCID lcid,
  2670.       WORD wFlags,
  2671.       DISPPARAMS FAR* pdispparams,
  2672.       VARIANT FAR* pvarResult,
  2673.       EXCEPINFO FAR* pexcepinfo,
  2674.       UINT FAR* puArgErr) PURE;
  2675. #endif
  2676.  
  2677. /* Capable of dispatching all the methods of interface ITParams */
  2678. };
  2679.  
  2680. DEFINE_GUID(CLSID_TParams,0x2647E123,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2681.  
  2682.  
  2683. DEFINE_GUID(IID_ITStrings,0x2647E131,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2684.  
  2685. /* Definition of interface: ITStrings */
  2686. DECLARE_INTERFACE_(ITStrings, ITBDTObject)
  2687. {
  2688. #ifndef NO_BASEINTERFACE_FUNCS
  2689.  
  2690.     /* IUnknown methods */
  2691.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2692.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2693.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2694.  
  2695.     /* ITBDTObject methods */
  2696.     STDMETHOD_(void, Detach)(THIS) PURE;
  2697.     STDMETHOD_(void, Assign)(THIS_ ITBDTObject FAR* source) PURE;
  2698.     STDMETHOD_(void, AssignDispatch)(THIS_ DTBDTObject FAR* source) PURE;
  2699. #endif
  2700.  
  2701.     /* ITStrings methods */
  2702.     STDMETHOD_(int, Add)(THIS_ ITAnyString FAR* s) PURE;
  2703.     STDMETHOD_(int, AddDispatch)(THIS_ BSTR s) PURE;
  2704.     STDMETHOD_(int, AddObject)(THIS_ ITAnyString FAR* s, LPVOID obj) PURE;
  2705.     STDMETHOD_(int, AddObjectDispatch)(THIS_ BSTR s, LPVOID obj) PURE;
  2706.     STDMETHOD_(void, AddStrings)(THIS_ ITStrings FAR* strings) PURE;
  2707.     STDMETHOD_(void, AddStringsDispatch)(THIS_ DTStrings FAR* strings) PURE;
  2708.     STDMETHOD_(void, BeginUpdate)(THIS) PURE;
  2709.     STDMETHOD_(void, Clear)(THIS) PURE;
  2710.     STDMETHOD_(void, Delete)(THIS_ int index) PURE;
  2711.     STDMETHOD_(void, EndUpdate)(THIS) PURE;
  2712.     STDMETHOD_(VARIANT_BOOL, Equals)(THIS_ ITStrings FAR* strings) PURE;
  2713.     STDMETHOD_(VARIANT_BOOL, EqualsDispatch)(THIS_ DTStrings FAR* strings) PURE;
  2714.     STDMETHOD_(void, Exchange)(THIS_ int index1, int index2) PURE;
  2715.     STDMETHOD_(VARIANT_BOOL, Find)(THIS_ ITAnyString FAR* s, int FAR* index) PURE;
  2716.     STDMETHOD_(VARIANT_BOOL, FindDispatch)(THIS_ BSTR s, int FAR* index) PURE;
  2717.     STDMETHOD_(int, IndexOf)(THIS_ ITAnyString FAR* s) PURE;
  2718.     STDMETHOD_(int, IndexOfDispatch)(THIS_ BSTR s) PURE;
  2719.     STDMETHOD_(int, IndexOfObject)(THIS_ LPVOID obj) PURE;
  2720.     STDMETHOD_(void, Insert)(THIS_ int index, ITAnyString FAR* s) PURE;
  2721.     STDMETHOD_(void, InsertDispatch)(THIS_ int index, BSTR s) PURE;
  2722.     STDMETHOD_(void, InsertObject)(THIS_ int index, ITAnyString FAR* s, LPVOID obj) PURE;
  2723.     STDMETHOD_(void, InsertObjectDispatch)(THIS_ int index, BSTR s, LPVOID obj) PURE;
  2724.     STDMETHOD_(void, LoadFromFile)(THIS_ ITAnyString FAR* filename) PURE;
  2725.     STDMETHOD_(void, LoadFromFileDispatch)(THIS_ BSTR filename) PURE;
  2726.     STDMETHOD_(void, LoadFromStream)(THIS_ ITMemoryStream FAR* stream) PURE;
  2727.     STDMETHOD_(void, LoadFromStreamDispatch)(THIS_ DTMemoryStream FAR* stream) PURE;
  2728.     STDMETHOD_(void, Move)(THIS_ int curIndex, int newIndex) PURE;
  2729.     STDMETHOD_(void, SaveToFile)(THIS_ ITAnyString FAR* filename) PURE;
  2730.     STDMETHOD_(void, SaveToFileDispatch)(THIS_ BSTR filename) PURE;
  2731.     STDMETHOD_(void, SaveToStream)(THIS_ ITMemoryStream FAR* stream) PURE;
  2732.     STDMETHOD_(void, SaveToStreamDispatch)(THIS_ DTMemoryStream FAR* stream) PURE;
  2733.     STDMETHOD_(void, Sort)(THIS) PURE;
  2734.     STDMETHOD_(int, get_Count)(THIS) PURE;
  2735.     STDMETHOD_(LPVOID, get_Objects)(THIS_ int index) PURE;
  2736.     STDMETHOD_(void, put_Objects)(THIS_ int index, LPVOID obj) PURE;
  2737.     STDMETHOD_(ITAnyString FAR*, get_Values)(THIS_ ITAnyString FAR* name) PURE;
  2738.     STDMETHOD_(BSTR, get_ValuesDispatch)(THIS_ BSTR name) PURE;
  2739.     STDMETHOD_(void, put_Values)(THIS_ ITAnyString FAR* name, ITAnyString FAR* value) PURE;
  2740.     STDMETHOD_(void, put_ValuesDispatch)(THIS_ BSTR name, BSTR value) PURE;
  2741.     STDMETHOD_(ITAnyString FAR*, get_Strings)(THIS_ int index) PURE;
  2742.     STDMETHOD_(BSTR, get_StringsDispatch)(THIS_ int index) PURE;
  2743.     STDMETHOD_(void, put_Strings)(THIS_ int index, ITAnyString FAR* s) PURE;
  2744.     STDMETHOD_(void, put_StringsDispatch)(THIS_ int index, BSTR s) PURE;
  2745.     STDMETHOD_(ITAnyString FAR*, get_Text)(THIS) PURE;
  2746.     STDMETHOD_(BSTR, get_TextDispatch)(THIS) PURE;
  2747.     STDMETHOD_(void, put_Text)(THIS_ ITAnyString FAR* t) PURE;
  2748.     STDMETHOD_(void, put_TextDispatch)(THIS_ BSTR t) PURE;
  2749.     STDMETHOD_(TDuplicates, get_Duplicates)(THIS) PURE;
  2750.     STDMETHOD_(void, put_Duplicates)(THIS_ TDuplicates d) PURE;
  2751.     STDMETHOD_(VARIANT_BOOL, get_Sorted)(THIS) PURE;
  2752.     STDMETHOD_(void, put_Sorted)(THIS_ VARIANT_BOOL s) PURE;
  2753.     STDMETHOD_(void, AttachOnChange)(THIS_ NStringsNotifyEvent Callback, long Data) PURE;
  2754.     STDMETHOD_(void, DetachOnChange)(THIS_ NStringsNotifyEvent Callback, long Data) PURE;
  2755.     STDMETHOD_(void, AttachOnChanging)(THIS_ NStringsNotifyEvent Callback, long Data) PURE;
  2756.     STDMETHOD_(void, DetachOnChanging)(THIS_ NStringsNotifyEvent Callback, long Data) PURE;
  2757. };
  2758.  
  2759. DEFINE_GUID(DIID_DTStrings,0x2647E132,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2760.  
  2761. /* Definition of dispatch interface: DTStrings */
  2762. DECLARE_INTERFACE_(DTStrings, IDispatch)
  2763. {
  2764. #ifndef NO_BASEINTERFACE_FUNCS
  2765.  
  2766.     /* IUnknown methods */
  2767.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2768.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2769.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2770.  
  2771.     /* IDispatch methods */
  2772.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2773.  
  2774.     STDMETHOD(GetTypeInfo)(
  2775.       THIS_
  2776.       UINT itinfo,
  2777.       LCID lcid,
  2778.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2779.  
  2780.     STDMETHOD(GetIDsOfNames)(
  2781.       THIS_
  2782.       REFIID riid,
  2783.       OLECHAR FAR* FAR* rgszNames,
  2784.       UINT cNames,
  2785.       LCID lcid,
  2786.       DISPID FAR* rgdispid) PURE;
  2787.  
  2788.     STDMETHOD(Invoke)(
  2789.       THIS_
  2790.       DISPID dispidMember,
  2791.       REFIID riid,
  2792.       LCID lcid,
  2793.       WORD wFlags,
  2794.       DISPPARAMS FAR* pdispparams,
  2795.       VARIANT FAR* pvarResult,
  2796.       EXCEPINFO FAR* pexcepinfo,
  2797.       UINT FAR* puArgErr) PURE;
  2798. #endif
  2799.  
  2800. /* Capable of dispatching all the methods of interface ITStrings */
  2801. };
  2802.  
  2803. DEFINE_GUID(CLSID_TStrings,0x2647E133,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2804.  
  2805.  
  2806. DEFINE_GUID(IID_ITMemoryStream,0x2647E141,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2807.  
  2808. /* Definition of interface: ITMemoryStream */
  2809. DECLARE_INTERFACE_(ITMemoryStream, IUnknown)
  2810. {
  2811. #ifndef NO_BASEINTERFACE_FUNCS
  2812.  
  2813.     /* IUnknown methods */
  2814.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2815.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2816.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2817. #endif
  2818.  
  2819.     /* ITMemoryStream methods */
  2820.     STDMETHOD_(void, Detach)(THIS) PURE;
  2821.     STDMETHOD_(long, Read)(THIS_ LPVOID Buffer, long Count) PURE;
  2822.     STDMETHOD_(long, Write)(THIS_ LPVOID Buffer, long Count) PURE;
  2823.     STDMETHOD_(long, Seek)(THIS_ long Offset, TSeekOrigin Origin) PURE;
  2824.     STDMETHOD_(void, ReadBuffer)(THIS_ LPVOID Buffer, long Count) PURE;
  2825.     STDMETHOD_(void, WriteBuffer)(THIS_ LPVOID Buffer, long Count) PURE;
  2826.     STDMETHOD_(long, CopyFrom)(THIS_ ITMemoryStream FAR* stream, long Count) PURE;
  2827.     STDMETHOD_(long, CopyFromDispatch)(THIS_ DTMemoryStream FAR* stream, long Count) PURE;
  2828.     STDMETHOD_(long, get_Position)(THIS) PURE;
  2829.     STDMETHOD_(void, put_Position)(THIS_ long p) PURE;
  2830.     STDMETHOD_(long, get_Size)(THIS) PURE;
  2831. };
  2832.  
  2833. DEFINE_GUID(DIID_DTMemoryStream,0x2647E142,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2834.  
  2835. /* Definition of dispatch interface: DTMemoryStream */
  2836. DECLARE_INTERFACE_(DTMemoryStream, IDispatch)
  2837. {
  2838. #ifndef NO_BASEINTERFACE_FUNCS
  2839.  
  2840.     /* IUnknown methods */
  2841.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2842.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2843.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2844.  
  2845.     /* IDispatch methods */
  2846.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2847.  
  2848.     STDMETHOD(GetTypeInfo)(
  2849.       THIS_
  2850.       UINT itinfo,
  2851.       LCID lcid,
  2852.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2853.  
  2854.     STDMETHOD(GetIDsOfNames)(
  2855.       THIS_
  2856.       REFIID riid,
  2857.       OLECHAR FAR* FAR* rgszNames,
  2858.       UINT cNames,
  2859.       LCID lcid,
  2860.       DISPID FAR* rgdispid) PURE;
  2861.  
  2862.     STDMETHOD(Invoke)(
  2863.       THIS_
  2864.       DISPID dispidMember,
  2865.       REFIID riid,
  2866.       LCID lcid,
  2867.       WORD wFlags,
  2868.       DISPPARAMS FAR* pdispparams,
  2869.       VARIANT FAR* pvarResult,
  2870.       EXCEPINFO FAR* pexcepinfo,
  2871.       UINT FAR* puArgErr) PURE;
  2872. #endif
  2873.  
  2874. /* Capable of dispatching all the methods of interface ITMemoryStream */
  2875. };
  2876.  
  2877. DEFINE_GUID(CLSID_TMemoryStream,0x2647E143,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2878.  
  2879.  
  2880. DEFINE_GUID(IID_ITAnyString,0x2647E151,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2881.  
  2882. /* Definition of interface: ITAnyString */
  2883. DECLARE_INTERFACE_(ITAnyString, IUnknown)
  2884. {
  2885. #ifndef NO_BASEINTERFACE_FUNCS
  2886.  
  2887.     /* IUnknown methods */
  2888.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2889.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2890.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2891. #endif
  2892.  
  2893.     /* ITAnyString methods */
  2894.     STDMETHOD_(BSTR, get_AsBSTR)(THIS) PURE;
  2895.     STDMETHOD_(void, put_AsBSTR)(THIS_ BSTR s) PURE;
  2896.     STDMETHOD_(void, get_AsStringBuf)(THIS_ LPSTR s, int max) PURE;
  2897.     STDMETHOD_(void, put_AsStringBuf)(THIS_ LPCSTR s) PURE;
  2898.     STDMETHOD_(int, get_Length)(THIS) PURE;
  2899.     STDMETHOD_(LPCSTR, get_Buffer)(THIS) PURE;
  2900. };
  2901.  
  2902. DEFINE_GUID(DIID_DTAnyString,0x2647E152,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2903.  
  2904. /* Definition of dispatch interface: DTAnyString */
  2905. DECLARE_INTERFACE_(DTAnyString, IDispatch)
  2906. {
  2907. #ifndef NO_BASEINTERFACE_FUNCS
  2908.  
  2909.     /* IUnknown methods */
  2910.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  2911.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  2912.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  2913.  
  2914.     /* IDispatch methods */
  2915.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  2916.  
  2917.     STDMETHOD(GetTypeInfo)(
  2918.       THIS_
  2919.       UINT itinfo,
  2920.       LCID lcid,
  2921.       ITypeInfo FAR* FAR* pptinfo) PURE;
  2922.  
  2923.     STDMETHOD(GetIDsOfNames)(
  2924.       THIS_
  2925.       REFIID riid,
  2926.       OLECHAR FAR* FAR* rgszNames,
  2927.       UINT cNames,
  2928.       LCID lcid,
  2929.       DISPID FAR* rgdispid) PURE;
  2930.  
  2931.     STDMETHOD(Invoke)(
  2932.       THIS_
  2933.       DISPID dispidMember,
  2934.       REFIID riid,
  2935.       LCID lcid,
  2936.       WORD wFlags,
  2937.       DISPPARAMS FAR* pdispparams,
  2938.       VARIANT FAR* pvarResult,
  2939.       EXCEPINFO FAR* pexcepinfo,
  2940.       UINT FAR* puArgErr) PURE;
  2941. #endif
  2942.  
  2943. /* Capable of dispatching all the methods of interface ITAnyString */
  2944. };
  2945.  
  2946. DEFINE_GUID(CLSID_TAnyString,0x2647E153,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2947.  
  2948.  
  2949. DEFINE_GUID(CLSID_TStringField,0x2647E163,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2950.  
  2951.  
  2952. DEFINE_GUID(CLSID_TSmallintField,0x2647E173,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2953.  
  2954.  
  2955. DEFINE_GUID(CLSID_TIntegerField,0x2647E183,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2956.  
  2957.  
  2958. DEFINE_GUID(CLSID_TWordField,0x2647E193,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2959.  
  2960.  
  2961. DEFINE_GUID(CLSID_TBooleanField,0x2647E1A3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2962.  
  2963.  
  2964. DEFINE_GUID(CLSID_TNumericField,0x2647E1B3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2965.  
  2966.  
  2967. DEFINE_GUID(CLSID_TFloatField,0x2647E1C3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2968.  
  2969.  
  2970. DEFINE_GUID(CLSID_TCurrencyField,0x2647E1D3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2971.  
  2972.  
  2973. DEFINE_GUID(CLSID_TBCDField,0x2647E1E3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2974.  
  2975.  
  2976. DEFINE_GUID(CLSID_TDateField,0x2647E1F3,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2977.  
  2978.  
  2979. DEFINE_GUID(CLSID_TTimeField,0x2647E203,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2980.  
  2981.  
  2982. DEFINE_GUID(CLSID_TDateTimeField,0x2647E213,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2983.  
  2984.  
  2985. DEFINE_GUID(CLSID_TBytesField,0x2647E223,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2986.  
  2987.  
  2988. DEFINE_GUID(CLSID_TVarBytesField,0x2647E233,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2989.  
  2990.  
  2991. DEFINE_GUID(CLSID_TBlobField,0x2647E243,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2992.  
  2993.  
  2994. DEFINE_GUID(CLSID_TMemoField,0x2647E253,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2995.  
  2996.  
  2997. DEFINE_GUID(CLSID_TGraphicField,0x2647E263,0x91D6,0x11CE,0x88,0x57,0x00,0x20,0xAF,0x05,0xB1,0x9B);
  2998.  
  2999.  
  3000. #endif
  3001.